Python获取列表列表中每个列表的最后一个元素

2024-06-16 08:25:02 发布

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

我的问题很简单,我有一个列表:

my_list = [['a1','b1'],['a2','b2'],['a3','b3','c3'],['a4','b4','c4','d4','e4']]

如何轻松获取每个列表的最后一个元素,即:

[ 'b1' , 'b2' , 'c3' , 'e4' ]

谢谢!


Tags: a2列表mya1b2a3listb1
3条回答

您可以使用索引-1获取每个元素的最后一个元素,只需对所有子列表执行此操作。

print [item[-1] for item in my_list]
# ['b1', 'b2', 'c3', 'e4']

如果你在寻找一种习惯的方式,那么你可以

import operator
get_last_item = operator.itemgetter(-1)
print map(get_last_item, my_list)
# ['b1', 'b2', 'c3', 'e4']
print [get_last_item(sub_list) for sub_list in my_list]
# ['b1', 'b2', 'c3', 'e4']

如果您使用的是Python3.x,那么您也可以这样做

print([last for *_, last in my_list])
# ['b1', 'b2', 'c3', 'e4']

你可以试试

这是demo

>>> [i.pop() for i in my_list]
['b1', 'b2', 'c3', 'e4']

>>> my_list = [['a1','b1'],['a2','b2'],['a3','b3','c3'],['a4','b4','c4','d4','e4']]
>>> [i[-1] for i in my_list]
['b1', 'b2', 'c3', 'e4']

使用map的替代方案:

last_items = map(lambda x: x[-1], my_list)

或:

from operator import itemgetter
print map(itemgetter(-1), my_list)

相关问题 更多 >