如何在python中动态解包列表列表并将变量关联到它们?

时间:2014-03-14 23:15:56

标签: python list

所以这就是我的困境:我正在尝试创建一个程序,要求输入许多输入,每个输入都需要是一个可以容纳多个字段的列表。到目前为止,我能够动态创建它的唯一方法是通过以下方式:

numlists = eval(input("Enter the number of inputs: "))
parent_list = [ [] for i in range(numlists)]

例如,如果输入3,则输出为[[],[],[]]。但是,我现在想动态解包parent_list并将每个列表实例关联到另一个变量。因此,如果有3个输入,则parent_ list会动态解压缩为三个单独的列表变量:child1,child2和child3。如果有5,则通过child5动态解包到child1。

有没有人知道这样做的方法?

1 个答案:

答案 0 :(得分:-1)

您可以进行扩展

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] = []

但是,您可能希望重新定义您的问题,以便更清楚地了解您需要对此数据执行的操作。