6 回答
TA贡献1757条经验 获得超8个赞
你有正确的想法。如果列表中的列表只有一层深,您可以像尝试做的那样使用列表理解和 -1 索引访问第一个和最后一个元素:
a = [[sublist[0],sublist[-1]] for sublist in x]
输出:
>>> a [[1, 3], [4, 6], [7, 9]]
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]]
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 个切片,一个包含第一个元素,一个包含最后一个元素,然后将它们连接起来。
即使子列表的长度不同,它也会起作用。
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]
TA贡献1799条经验 获得超6个赞
我建议这样做。该list[-1]语法旨在获取您想要的列表中的最后一个元素。
x=[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for elem in x:
print(elem[0], elem[-1])
这只是以标准格式打印它们,但按此顺序将它们放回新列表中会很简单。
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)
添加回答
举报