如何在具有相同位置时从列表列表中获取元素

时间:2017-11-28 19:49:07

标签: python list

我有一个列表列表,我想从同一位置的每个列表中提取元素。我该怎么办?举个例子。我喜欢:

  

L = [[A,B,C,D] [B,C,D,E] [C,D,E,F]]

现在我想要0位的所有字母给我:

  

A,B,C - > L [0] [0],L [1] [0],L [2] [0]

我试图使用:

[row[0] for row in L] 

L[:-1][0]

但它们都不适合我。

4 个答案:

答案 0 :(得分:1)

发生这种情况的原因是因为你列表的方式。

index.blade.php

您必须将列表分开(即您忘记了每个列表之间的逗号)。将您的列表更改为此类

[[A,B,C,D][B,C,D,E][C,D,E,F]]

此外,在测试时,它不起作用,因为它不在引号中,但我猜这是有原因的。

希望我能提供帮助:3

答案 1 :(得分:0)

你非常接近。试试这个,

[v[0] for i, v in enumerate(L)]

答案 2 :(得分:0)

这应该有用, 我不明白为什么它不适合你:

[row[0] for row in L] 

输出:

['A','B', 'C']

答案 3 :(得分:0)

使用zip转换您的列表。

>>> L = [['A','B','C','D'],['B','C','D','E'],['C','D','E','F']]
>>> t = zip(*L) # list(*zip(L)) in Python 3

t[position]会为您提供特定职位的所有要素。

>>> t[0]
('A', 'B', 'C')
>>> t[1]
('B', 'C', 'D')
>>> t[2]
('C', 'D', 'E')
>>> t[3]
('D', 'E', 'F')

顺便说一句,您尝试的解决方案应该有效。

>>> [row[0] for row in L] 
['A', 'B', 'C']

如果你只关心一个特定的索引,这是完全没问题的。如果您想要所有索引的信息,可以使用zip来转置整个列表列表。