使用循环的多个列表
Multiple List using loop
我可以使用循环创建多个列表吗?我想要实现的是创建几个列表例如:
lt_1 = []
lt_2 = []
lt_3 = []
......
以后分别在每个列表中添加项目。我试着按照上面的方式命名每个列表,但是有 20 个列表分别命名,它看起来不太好。所以我尝试使用 for 循环但没有成功。 here 给出的解决方案建议使用字典,但我无法在每个列表中附加项目。此外,我实际上想创建单独的列表(如果可能的话),以便我可以处理每个列表中的每个元素。
我尝试了以下方法(显然行不通)但我想做的是将 lt_z 中的 'z' 作为循环变量而不是变量名传递(希望这使得意义)
for z in range(0,20):
lt_z = []
P.S。我刚刚开始学习 python 所以我在尝试用字典解决问题时可能漏掉了一些东西。
大多数 pythonic 可能仍在使用 dict
:
listDict = {}
for i in range(10):
listDict[f'lt_{i}'] = []
然后你就可以像单独列表一样使用它了:
>>> print(listDict)
{'lt_0': [], 'lt_1': [], 'lt_2': [],
'lt_3': [], 'lt_4': [], 'lt_5': [],
'lt_6': [], 'lt_7': [], 'lt_8': [],
'lt_9': []}
>>> listDict['lt_2'].append(5)
>>> listDict['lt_2'].append(6)
>>> print(listDict['lt_2'])
[5, 6]
动态创建变量名原则上是可行的,但几乎总是一个非常糟糕的主意。
更新
您询问了 f'lt_{i}'
的工作原理。这只是一个所谓的 f-string。它等同于 'lt_'+str(i)
将 lg_
与 i
的当前值连接起来。参见例如here 有关如何使用 f 弦的更多信息。
您可以使用列表的列表,即嵌套列表,也可以使用包含值的字典作为列表。
如果你想稍后根据名称修改值,使用以值作为列表的字典会有所帮助,如果名称无关紧要,你只想根据 position/index 进行修改,那么你可以使用嵌套列表。
但我认为更好的方法是使用嵌套列表而不是字典,这是一个代码片段:
result = []
for z in range(0,20):
lt_z = []
result.append(lt_z)
我可以使用循环创建多个列表吗?我想要实现的是创建几个列表例如:
lt_1 = []
lt_2 = []
lt_3 = []
......
以后分别在每个列表中添加项目。我试着按照上面的方式命名每个列表,但是有 20 个列表分别命名,它看起来不太好。所以我尝试使用 for 循环但没有成功。 here 给出的解决方案建议使用字典,但我无法在每个列表中附加项目。此外,我实际上想创建单独的列表(如果可能的话),以便我可以处理每个列表中的每个元素。
我尝试了以下方法(显然行不通)但我想做的是将 lt_z 中的 'z' 作为循环变量而不是变量名传递(希望这使得意义)
for z in range(0,20):
lt_z = []
P.S。我刚刚开始学习 python 所以我在尝试用字典解决问题时可能漏掉了一些东西。
大多数 pythonic 可能仍在使用 dict
:
listDict = {}
for i in range(10):
listDict[f'lt_{i}'] = []
然后你就可以像单独列表一样使用它了:
>>> print(listDict)
{'lt_0': [], 'lt_1': [], 'lt_2': [],
'lt_3': [], 'lt_4': [], 'lt_5': [],
'lt_6': [], 'lt_7': [], 'lt_8': [],
'lt_9': []}
>>> listDict['lt_2'].append(5)
>>> listDict['lt_2'].append(6)
>>> print(listDict['lt_2'])
[5, 6]
动态创建变量名原则上是可行的,但几乎总是一个非常糟糕的主意。
更新
您询问了 f'lt_{i}'
的工作原理。这只是一个所谓的 f-string。它等同于 'lt_'+str(i)
将 lg_
与 i
的当前值连接起来。参见例如here 有关如何使用 f 弦的更多信息。
您可以使用列表的列表,即嵌套列表,也可以使用包含值的字典作为列表。
如果你想稍后根据名称修改值,使用以值作为列表的字典会有所帮助,如果名称无关紧要,你只想根据 position/index 进行修改,那么你可以使用嵌套列表。 但我认为更好的方法是使用嵌套列表而不是字典,这是一个代码片段:
result = []
for z in range(0,20):
lt_z = []
result.append(lt_z)