首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -从同一个.py文件中的所有变量创建列表

Python -从同一个.py文件中的所有变量创建列表
EN

Stack Overflow用户
提问于 2021-12-24 10:06:31
回答 1查看 147关注 0票数 4

所以我有下面这段类别的代码,有时我会通过添加一个新的类别来更新它,然后我必须手动地将这个类别添加到INITIAL_GOAL_CATEGORIES底部的列表中--如果每当我创建一个新的dict变量时,这个列表就会被自动更新的话,就会容易得多。有办法这样做吗?我导出INITIAL_GOAL_CATEGORIES变量并将其用于其他地方,因此如果我能够将变量名设置为所有其他变量的列表,那就太棒了。此文件将只包含类别的切块和底部的所有类别的列表。

categories.py

代码语言:javascript
复制
# Categories
ART = dict(name='Art', emoji='')
CULINARY = dict(name='Culinary', emoji='')
DIET = dict(name='Diet', emoji='')
DIY = dict(name='DIY', emoji='')
FINANCE = dict(name='Finance', emoji='')
FITNESS = dict(name='Fitness', emoji='')
GAMING = dict(name='Gaming', emoji='️')
MARTIAL_ARTS = dict(name='Martial Arts', emoji='')
MUSIC = dict(name='Music', emoji='')
RELATIONSHIP = dict(name='Relationship', emoji='')
SELF_CARE = dict(name='Self-Care', emoji='')
SELF_IMPROVEMENT = dict(name='Self-Improvement', emoji='✨')
STREAMING = dict(name='Streaming', emoji='⏺️')
TRAVEL = dict(name='Travel', emoji='✈️')
WEIGHT_TRAINING = dict(name='Weight Training', emoji='️')

INITIAL_GOAL_CATEGORIES = [ART, CULINARY, DIET, DIY, FITNESS, GAMING, MARTIAL_ARTS, MUSIC,
                           RELATIONSHIP, SELF_IMPROVEMENT, SELF_CARE, STREAMING, TRAVEL,
                           WEIGHT_TRAINING]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-24 10:13:59

如果要创建一个列表,在添加此类全局值时更新其自身,请在这里说明您需要的内容:

代码语言:javascript
复制
# Categories
ART = dict(name='Art', emoji='')
CULINARY = dict(name='Culinary', emoji='')
DIET = dict(name='Diet', emoji='')
DIY = dict(name='DIY', emoji='')
FINANCE = dict(name='Finance', emoji='')
FITNESS = dict(name='Fitness', emoji='')
GAMING = dict(name='Gaming', emoji='️')
MARTIAL_ARTS = dict(name='Martial Arts', emoji='')
MUSIC = dict(name='Music', emoji='')
RELATIONSHIP = dict(name='Relationship', emoji='')
SELF_CARE = dict(name='Self-Care', emoji='')
SELF_IMPROVEMENT = dict(name='Self-Improvement', emoji='✨')
STREAMING = dict(name='Streaming', emoji='⏺️')
TRAVEL = dict(name='Travel', emoji='✈️')
WEIGHT_TRAINING = dict(name='Weight Training', emoji='️')

INITIAL_GOAL_CATEGORIES = [value for name, value in globals().items() if
                           name.isupper()]

这将遍历全局()中的所有值,并检查该值的名称是否大写。如果它符合标准,它就是一个类别,我们将它添加到类别列表中。

但正如评论中所说:字典更好:

代码语言:javascript
复制
# Categories
INITIAL_GOAL_CATEGORIES = {
    'Art': {'emoji': ''},
    'Culinary': {'emoji': ''},
    'Diet': {'emoji': ''},
    'DIY': {'emoji': ''},
    'Finance': {'emoji': ''},
    'Fitness': {'emoji': ''},
    'Gaming': {'emoji': '️'},
    'Martial Arts': {'emoji': ''},
    'Music': {'emoji': ''},
    'Relationship': {'emoji': ''},
    'Self-Care': {'emoji': ''},
    'Self-Improvement': {'emoji': '✨'},
    'Streaming': {'emoji': '⏺️'},
    'Travel': {'emoji': '✈️'},
    'Weight Training': {'emoji': '️'},
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70471733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档