【发布时间】:2017-01-12 12:15:49
【问题描述】:
所以我正在编写一个游戏,我需要一个可以存储大量变量的数据类型,范围从lists、tuples、strings 和integers。我在使用dictionaries 或namedtuples 之间纠结。
GameData = namedtuple('GameData', ['Stats', 'Inventory', 'Name', 'Health'])
current_game = GameData((20,10,55,3), ['Sword', 'Apple', 'Potion'], 'Arthur', 100)
GameData = {'Stats': (20,10,55,3), 'Inventory': ['Sword', 'Apple', 'Potion'], 'Name': 'Arthur', 'Health': 100}
你看,这里最大的问题是所有这些值都可能改变,所以我需要一个可变数据类型,而不是namedtuple。查看文档,namedtuples 似乎有 ._replace(),所以这是否使它可变?
我也喜欢namedtuples 有一个__repr__ 方法,它以name=value 格式打印。此外,为namedtuple 中的每个值分配单独的__doc__ 字段的功能非常有用。 dictionaries 有这个功能吗?
【问题讨论】:
标签: python dictionary types namedtuple python-3.6