从嵌套列表中提取元素的最佳方法

时间:2014-11-19 23:52:21

标签: python list

我有一个列表,如下所示:

[[[12, 15, 0], [13, 15, 25], [14, 15, 25], [16, 16, 66], [18, 15, 55]]]

提取索引位置1处出现的所有元素的最佳方法是什么。我知道我可以使用for循环;

for i in list:
    for j in i:
        print j[2]

但有没有更“pythonic”(简短/简单/更少代码/更有效)的方式来做到这一点?

2 个答案:

答案 0 :(得分:5)

您可以使用list comprehension

>>> lst = [[[12, 15, 0], [13, 15, 25], [14, 15, 25], [16, 16, 66], [18, 15, 55]]]
>>> [x[1] for x in lst[0]]
[15, 15, 15, 16, 15]
>>>

以上相当于:

lst = [[[12, 15, 0], [13, 15, 25], [14, 15, 25], [16, 16, 66], [18, 15, 55]]]
final_list = []
for sub_list in lst[0]:
    final_list.append(sub_list[1])

除了它更简洁,并且还避免了对list.append的所有调用(这意味着它更有效)。

答案 1 :(得分:1)

使用列表理解:

[ x[1] for x in my_list[0] ]

如果嵌套列表更多,则更为通用...

[ y[1] for x in my_list for y in x ]