我的问题非常简单,我有一个列表的列表:
my_list = [['a1','b1'],['a2','b2'],['a3','b3','c3'],['a4','b4','c4','d4','e4']]
如何轻松地获取每个列表的最后一个元素,即:
[ 'b1' , 'b2' , 'c3' , 'e4' ]
谢谢!
你可以使用索引-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']
map
的另一种方法:
last_items = map(lambda x: x[-1], my_list)
或者:
from operator import itemgetter
print map(itemgetter(-1), my_list)
>>> [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']
你可以尝试:
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)
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' ]
希望这能帮助你找到答案。