This question already has answers here:
How do I create variable variables?
(15个答案)
3年前关闭。
初学者的问题。
我想创建几个空列表并命名。目前,我正在这样做,但是很麻烦,
我正在努力减少麻烦,
但是,这导致以下错误,
可以轻松解决此问题,还是应该使用其他方法来创建带有名称的空列表?
附录:
通过使用字典,您将拥有一个变量,其中包含不同标签的所有列表值(无论它们是什么)。但是,也许(从您选择的名称来看)相应列表位置中的值是要组合在一起的。例如,也许
自定义类的对象,并具有所有对象的单个列表。
元组(命名或其他名称)无法修改,因此这可能不是您所需要的。如果是这样,请使用字典而不是元组,或编写一个简单的类。
(15个答案)
3年前关闭。
初学者的问题。
我想创建几个空列表并命名。目前,我正在这样做,但是很麻烦,
size_list=[]
type_list=[]
floor_list=[]
我正在努力减少麻烦,
for item in ['size', 'type']:
item+'_list'=[]
但是,这导致以下错误,
item+'_list'=[]
^
SyntaxError: can't assign to operator
可以轻松解决此问题,还是应该使用其他方法来创建带有名称的空列表?
最佳答案
如果您有大量数据要跟踪单独的变量,请不要依赖相关的变量名称。定义完所有这些变量后,您的代码将如何处理?使用字典:
datalists = dict()
for item in ['size', 'type']:
datalists[item] = []
附录:
通过使用字典,您将拥有一个变量,其中包含不同标签的所有列表值(无论它们是什么)。但是,也许(从您选择的名称来看)相应列表位置中的值是要组合在一起的。例如,也许
size_list[0]
是type_list[0]
类型的元素的大小等?在这种情况下,更好的设计是将每个元素表示为单个元组,字典或自定义类的对象,并具有所有对象的单个列表。
Thing = namedtuple("Thing", ['size', 'type', 'floor'])
spoon = Thing(size=33, type='spoon', floor='green')
things = []
things.append(spoon)
元组(命名或其他名称)无法修改,因此这可能不是您所需要的。如果是这样,请使用字典而不是元组,或编写一个简单的类。