初学者的问题。
我想创建几个空列表并命名它们。目前我这样做是万无一失但却很麻烦的方式,
size_list=[]
type_list=[]
floor_list=[]
我试图减少麻烦,
for item in ['size', 'type']:
item+'_list'=[]
但是,这会导致以下错误,
item+'_list'=[]
^
SyntaxError: can't assign to operator
可以轻松修复,还是应该使用其他方法创建带名称的空列表?
答案 0 :(得分:4)
如果要在单独的变量中跟踪大量数据,请不要依赖相关的变量名称。在定义它们之后,您的代码将对所有这些变量执行什么操作?使用字典:
datalists = dict()
for item in ['size', 'type']:
datalists[item] = []
<强>附录:强>
通过使用字典,您有一个变量包含不同标签的所有列表值(无论它们是什么)。但也许(根据您选择的名称判断)相应列表位置中的值是一起的。例如,size_list[0]
可能是类型type_list[0]
等元素的大小?在这种情况下,更好的设计是将每个元素表示为单个元组,dict或
自定义类的对象,并具有所有对象的单个列表。
Thing = namedtuple("Thing", ['size', 'type', 'floor'])
spoon = Thing(size=33, type='spoon', floor='green')
things = []
things.append(spoon)
无法修改元组(已命名或其他),因此可能不是您需要的。如果是这样,请使用字典而不是元组,或者编写一个简单的类。