如何将具有未知元素数量的列表列表解压缩为唯一变量?

时间:2017-12-01 02:45:58

标签: python

我最近创建了一个程序,它会给我一个列表列表:

myList = [[1,2],[3,4],[5,6]]

但是,我不知道这个列表会包含多少个列表,但我确实想将它解压缩成我以后可以操作的唯一变量(不是字典):

list1 = [1,2]
list2 = [3,4]
list3 = [5,6]

我一直试图弄清楚这一点,但我不能。我真的很感激一些帮助。

3 个答案:

答案 0 :(得分:5)

您实际上根本不需要解压缩它们:单个列表可以像现在一样被引用为唯一变量!

不要尝试使用新名称将变量引用为list1,而是使用现有名称:

myList = [[1,2],[3,4],[5,6]]
print (myList[0]) # Prints out the list [1,2]
print (myList[1]) #Prints out the list [3,4]
print (myList[2]) #Prints out the list [5,6]

这种格式有一些优点,例如这个组成列表:

myListOfUnexpectedSize = [[1,3],[5,7],...more lists...,[15,17]]
print(len(myListOfUnexpectedSize)) #Prints out the number of lists you have
for lis in myListOfUnexpectedSize: #This loop will print out all the lists one by one
    print(lis) 
print(myListOfUnexpectedSize[-1]) #Prints out the last list in the big list

因此,通过使用较大列表的大小,您可以计算出里面有多少列表并使用它们。

答案 1 :(得分:2)

您可能需要的是一个集合,例如用于存放每个列表的列表,然后您可以通过索引引用它。或者,如果您真的想通过特定名称引用它,可以考虑如下字典和一些列表理解

listDict = {"list" + str(key+1) : value for (key, value) in enumerate(myList)}

答案 2 :(得分:0)

如果您有三个以上的子列表,可以试试这个:

myList = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
list1, list2, list3, *rest = myList
print(list1)
print(list2)
print(list3)

其余的将保留其余的子列表,list1,list2,list3是你想要的。