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

13

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

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

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

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

谢谢!

5个回答

14

你可以使用索引-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']

如果您正在使用Python 3.x,则也可以这样做。

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

3
< p >使用map的另一种方法:

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

或者:

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

1
您可以尝试,
这里是 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']

0

0
请看下面的答案:
my_list = [['a1','b1'],['a2','b2'],['a3','b3','c3'],['a4','b4','c4','d4','e4']]

new_list = []
for sub_list in my_list:
    new_list.append(sub_list[-1])

print(new_list) # o/p: [ 'b1' , 'b2' , 'c3' , 'e4' ]

希望这能帮助你找到答案。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接