从嵌套列表的子列表中提取第一个和最后一个元素

如何从嵌套列表中的每个子列表中提取第一个和最后一个元素?


例如:


x=[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

print(x)

#[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

想要的结果——


[[1, 3], [4, 6], [7, 9]]

这是我见过最接近的


a = [x[i][i] for i in (0, -1)]

print(a)

#[1, 9]


猛跑小猪
浏览 199回答 6
6回答

陪伴而非守候

你有正确的想法。如果列表中的列表只有一层深,您可以像尝试做的那样使用列表理解和 -1 索引访问第一个和最后一个元素:a = [[sublist[0],sublist[-1]] for sublist in x]输出:>>> a [[1, 3], [4, 6], [7, 9]]

倚天杖

以下是如何使用列表切片:x = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] x = [l[::len(l)-1] for l in x] print(x)输出:[[1, 3], [4, 6], [7, 9]]

慕容3067478

x = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]>>> [a[:1] + a[-1:] for a in x][[1, 3], [4, 6], [7, 9]]我提取了 2 个切片,一个包含第一个元素,一个包含最后一个元素,然后将它们连接起来。即使子列表的长度不同,它也会起作用。

拉风的咖菲猫

您可以遍历列表并从那里访问它们:x=[[1, 2, 3], [4, 5, 6], [7, 8, 9]]out = []for arr in x:    out.append([arr[0], arr[-1]])print(out)输出:[[1, 3], [4, 6], [7, 9]]此外,您可以使用列表理解:out = [[arr[0], arr[-1]] for arr in x]

哈士奇WWW

我建议这样做。该list[-1]语法旨在获取您想要的列表中的最后一个元素。x=[[1, 2, 3], [4, 5, 6], [7, 8, 9]]for elem in x:    print(elem[0], elem[-1])这只是以标准格式打印它们,但按此顺序将它们放回新列表中会很简单。

梵蒂冈之花

这有效:x = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]for item in x:    print(item[0], item[2])对于您想要的确切结果,请使用:x = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]new_list = []for item in x:    new_list.append([item[0], item[2]])print(new_list)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python