2016-11-24 27 views
-2

我要提取的元素提取列表作为单独的元素

list = [[1,3], [2,3], [3,4]] becomes 
a = [1,3] 
b = [2,3] 
c = [3,4] 

如果什么列表包含超过26个元素的所有元素? 我已经写了一个使用集合的函数,我也希望该函数也能在这个列表上工作。

+0

将大型列表中的每个项目解压到单独的变量中并不是最佳决策 – RomanPerekhrest

+0

如果您认为需要这样做,那么您就错了。如果变量可以动态改变,你会如何在程序中使用它们,因为它不知道要查找哪些变量。只要将它们保存在列表中并从那里访问它们即可。 – Barmar

+0

如果您需要的所有内容都是将密钥与每个子列表关联起来,那么将数据存储在字典中怎么办? – ettanany

回答

0

python中的任何保留关键字都不能用作变量名称。 'list'是python中的保留关键字,因此您不能将其用作变量名称。

而不是a,b,c你可以使用a1,a2,a3来解压值。

下面的代码将解压缩列表中的许多数字。它可以是26或甚至可以比这更多。

list1 = [[1,3], [2,3], [3,4]] 

for i in xrange(0, len(list1)): 
    exec("a%d = %s" % (i + 1, repr(list1[i]))); 

print a1 
print a2 
print a3 

输出:

[1, 3] 
[2, 3] 
[3, 4] 

来源: generating variable names on fly in python

0

我不确定你为什么要在变量中存储嵌套list。相反,我会建议以指数作为访问值:

>>> list = [[1,3], [2,3], [3,4]] 
#  v list at index `0` 
>>> list[0] 
[1, 3] 

但是,如果在嵌套列表元素的数量是固定的,你可以解压的列表,并将其变量存储为:

>>> a, b, c = [[1,3], [2,3], [3,4]] 
>>> a 
[1, 3] 
0

一个简单的方法做的是:

list_variable = [[1,3], [2,3], [3,4]] 
a, b, c = list_variable 
print(a) 
print(b) 
print(c) 

输出:

[1, 3] 
[2, 3] 
[3, 4]