Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中动态解压列表并将变量关联到它们?_Python_List - Fatal编程技术网

如何在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的评论并做实验;)。但是,命名字段位是好的,因此如果修复第一条语句,我的向下投票可能会转换为向上投票;-)