问题描述
所以这是我的难题:我试图创建一个程序,要求输入多个输入,每个输入都需要是一个可以容纳多个字段的列表。 到目前为止,我能够动态创建此内容的唯一方法是通过以下操作:
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楼
你可以做扩展
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] = []
但是,您可能需要改写您的问题,这样您就可以更清楚地处理这些数据。