为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

猛跑小猪 2023-03-01 16:26:09
如何从嵌套列表中的每个子列表中提取第一个和最后一个元素?例如: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]
查看完整描述

6 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

你有正确的想法。如果列表中的列表只有一层深,您可以像尝试做的那样使用列表理解和 -1 索引访问第一个和最后一个元素:

a = [[sublist[0],sublist[-1]] for sublist in x]

输出:

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


查看完整回答
反对 回复 2023-03-01
?
倚天杖

TA贡献1828条经验 获得超3个赞

以下是如何使用列表切片:

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]]


查看完整回答
反对 回复 2023-03-01
?
慕容3067478

TA贡献1773条经验 获得超3个赞

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 个切片,一个包含第一个元素,一个包含最后一个元素,然后将它们连接起来。

即使子列表的长度不同,它也会起作用。


查看完整回答
反对 回复 2023-03-01
?
拉风的咖菲猫

TA贡献1995条经验 获得超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]


查看完整回答
反对 回复 2023-03-01
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

我建议这样做。该list[-1]语法旨在获取您想要的列表中的最后一个元素。


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


for elem in x:

    print(elem[0], elem[-1])

这只是以标准格式打印它们,但按此顺序将它们放回新列表中会很简单。


查看完整回答
反对 回复 2023-03-01
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

这有效:



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)


查看完整回答
反对 回复 2023-03-01
  • 6 回答
  • 0 关注
  • 198 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信