如何从嵌套列表中提取元素,并将其附加到另一个列表?

时间:2017-04-10 05:41:28

标签: python python-2.7 python-3.x numpy

lst =[[1,2,'a'],[3,4,'b'],[5,6,'c'],[7,8,'d']]

result = [[1,3,5,7],[2,4,6,8],['a','b','c','d']]

我需要从lst获取结果列表。有没有办法获得结果列表..无论嵌套列表的长度。

2 个答案:

答案 0 :(得分:3)

您应该在{}使用zip

>>> lst =[[1,2,'a'],[3,4,'b'],[5,6,'c'],[7,8,'d']]

# Python 2.7
>>> result = zip(*lst)
>>> result
[(1, 3, 5, 7), (2, 4, 6, 8), ('a', 'b', 'c', 'd')]

在Python 3+中,zip返回生成器对象。为了获得list的值,您必须明确地将其类型转换为:

# In Python3+
>>> list(zip(*lst))
[(1, 3, 5, 7), (2, 4, 6, 8), ('a', 'b', 'c', 'd')]

答案 1 :(得分:0)

listLen,listElemLen = len(lst), len(lst[0])
res = []
for i in range(listElemLen):
     temp = []
     for j in range(listLen):
        temp.append(lst[j][i])
     res.append(temp)
print(res) #[[1,3,5,7],[2,4,6,8],['a','b','c','d']]