我有一个列表列表,我想从同一位置的每个列表中提取元素。我该怎么办?举个例子。我喜欢:
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]
但它们都不适合我。
答案 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
来转置整个列表列表。