如何按给定索引从嵌套列表中提取元素

2024-04-26 00:43:13 发布

您现在位置:Python中文网/ 问答频道 /正文

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

[[[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”(简短/简单/代码更少/效率更高)的方法来做到这一点


Tags: 方法代码in元素列表forpythoniclist
2条回答

使用列表理解:

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

如果嵌套列表更为常见,则这一点更为普遍

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

您可以使用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的调用(这意味着它更高效)

相关问题 更多 >

    热门问题