我有一个列表列表,希望提取最后一项并将它们放在列表中。提取最后一项相对容易。但我所有的尝试都产生了一个列表,而不是一个列表列表。有什么建议吗?
lst = [[[11, 12, 15], [12, 13, 14], [13, 14, 15], [14, 15, 17], [15, 16, 17]], [[14, 15, 18], [15, 16, 17]]]
我想要的结果是:[[15, 14, 15, 17, 17], [18, 17]]
例如,我尝试的是这个功能:
def Extract(lst):
for i in lst:
return [item[-1] for item in i]
print(Extract(lst))
但这只会给出:[15, 14, 15, 17, 17]
我也试过:
last = []
for i in lst:
for d in i:
last.append(d[-1])
last
但这给出了:[15, 14, 15, 17, 17, 18, 17]
如何获得[[15, 14, 15, 17, 17], [17, 18]]
作为结果有什么建议吗?
lst = [[[11, 12, 15], [12, 13, 14], [13, 14, 15], [14, 15, 17], [15, 16, 17]], [[14, 15, 18], [15, 16, 17]]]
out = [[l[-1] for l in v] for v in lst]
print(out)
打印:
[[15, 14, 15, 17, 17], [18, 17]]
我建议在列表中循环两次,如下所示:
lst = [[[11, 12, 15], [12, 13, 14], [13, 14, 15], [14, 15, 17], [15, 16, 17]], [[14, 15, 18], [15, 16, 17]]]
# Result of iteration
last_lst = []
# Iterate through lst
for item1 in lst:
# Initialize temporary list
last_item1 = []
#Iterate through each list in lst
for item2 in item1:
# Add last item to temporary list
last_item1.append(item2[-1])
# Add the temporary list to last_lst
last_lst.append(last_item1)