我有一个列表,如下所示:
[[[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”(简短/简单/更少代码/更有效)的方式来做到这一点?
答案 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 ]