我的问题很简单,我有一份清单清单:
my_list = [['a1','b1'],['a2','b2'],['a3','b3','c3'],['a4','b4','c4','d4','e4']]
如何轻松获得每个列表的最后一个元素,即:
[ 'b1' , 'b2' , 'c3' , 'e4' ]
谢谢!
答案 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' ]
我希望它可以帮助您找到答案。