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

时间:2014-04-15 08:48:34

标签: python list

我的问题很简单,我有一份清单清单:

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

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

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

谢谢!

4 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:3)

map的替代方案:

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

或:

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

答案 2 :(得分:0)

您可以尝试:

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

for each_list in my_list:
    last_element = each_list[-1]
    print(last_element)

Code tested successfully to arrive at the expected result - In the Attachment

答案 3 :(得分: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' ]

我希望它可以帮助您找到答案。