如何在python中动态解压列表并将变量关联到它们?
所以我的两难处境是:我正在尝试创建一个程序,它要求输入多个输入,而每个输入都需要是一个可以容纳多个字段的列表。到目前为止,我能够动态创建它的唯一方法是通过以下方式:如何在python中动态解压列表并将变量关联到它们?,python,list,Python,List,所以我的两难处境是:我正在尝试创建一个程序,它要求输入多个输入,而每个输入都需要是一个可以容纳多个字段的列表。到目前为止,我能够动态创建它的唯一方法是通过以下方式: numlists = eval(input("Enter the number of inputs: ")) parent_list = [ [] for i in range(numlists)] 例如,如果我输入3,则输出为[[],[],[]。但是,我现在想动态地解压parent_list,并将每个list实例关联到不同的变量
numlists = eval(input("Enter the number of inputs: "))
parent_list = [ [] for i in range(numlists)]
例如,如果我输入3,则输出为[[],[],[]。但是,我现在想动态地解压parent_list,并将每个list实例关联到不同的变量。因此,如果有3个输入,则parent_uu列表将动态解压为三个单独的列表变量:child1、child2和child3。如果有5个,它将动态解压到child1到child5中
有人知道这样做的方法吗?您可以根据需要进行扩展
number_of_lists = 3
list_of_lists = [ [] for i in range(number_of_lists)]
但是,如果需要“命名”字段,则需要字典或类,这很难从应用程序中分辨出来。字典很简单:
dict_of_lists = dict ( ("child_%i" % k, []) for k in range(number_of_lists))
# {'child_0': [], 'child_1': [], 'child_2': []}
课程更难,但也不算太差:
class ListOfLists(object):
def __init__(self, number_of_lists):
for n in range (number_of_lists):
self.__dict__['child_%i' % n] = []
但是,您可能需要重新表述您的问题,以便更清楚地了解您需要如何处理这些数据。这可能有点不太清楚,您是否可以将它们存储在字典中而不是变量中?任何时候您想要动态创建变量,您只是在等待一个不好的时机。。。你怎么知道孩子3是否存在?它可能会在程序的某些运行中出现,而不是在其他运行中出现——围绕该问题进行编码会导致很难读取/维护代码。Juts保留了列表列表,并且很高兴python让您使用列表做了这么多很酷的事情:)FWIW,可能是标准的python参考说明您可能不应该这样做。尝试
list\u of_list[0]。追加(1)
并查看发生了什么:)因为list\u of_list=[[]*列表的数量
比OP的原始代码还要差(参见Paulo Bu的评论并做实验;)。但是,命名字段位是好的,因此如果修复第一条语句,我的向下投票可能会转换为向上投票;-)