使用循环创建空列表名称

Create empty list names using a loop

初学者的问题。

我想创建几个空列表并给它们命名。目前我正在做的是万无一失但很麻烦的方法,

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] 的元素的大小,等等?在那种情况下,更好的设计是将每个元素表示为单个元组、字典或 自定义 class 的对象,并拥有所有对象的单个列表。

Thing = namedtuple("Thing", ['size', 'type', 'floor'])
spoon = Thing(size=33, type='spoon', floor='green')

things = []
things.append(spoon)

无法修改元组(命名或其他方式),因此这可能不是您需要的。如果是这样,使用字典而不是元组,或者写一个简单的 class.