3 回答

TA贡献1943条经验 获得超7个赞
我已将您的变量A, B, C,转换D为字符串以提供示例输出。您可以使用单个列表理解,如下所示。
说明:您使用i. 每个子列表都有两个元组,您需要其中的最后一个元素。i[0][-1]给你的最后一个元素第一个元组,并i[0][-1]给你的最后一个元素的第二元组,
listA = [ [(1,2,'A'), (1,3,'B')], [(1,1,'B'),(1,2,'D')], [(1,1,'C'),(1,3,'F')], [(1,3,'D'),(1,5,'F')] ]
listB = [[i[0][-1], i[1][-1]] for i in listA]
产出
[['A', 'B'], ['B', 'D'], ['C', 'F'], ['D', 'F']]

TA贡献1878条经验 获得超4个赞
您可以使用以下嵌套理解:
[[y[2] for y in x] for x in listA]
# [['A', 'B'], ['B', 'D'], ['C', 'F'], ['D', 'F']]
内部理解具有额外的灵活性,可以处理任何长度的内部列表。

TA贡献1757条经验 获得超7个赞
如果numpy允许,您可以执行以下操作:
import numpy as np
listA = [[(1, 2, 'A'), (1, 3, 'B')], [(1, 1, 'B'), (1, 2, 'D')], [(1, 1, 'C'), (1, 3, 'F')], [(1, 3, 'D'), (1, 5, 'F')]]
print(np.array(listA)[:, :, 2].tolist())
输出
[['A', 'B'], ['B', 'D'], ['C', 'F'], ['D', 'F']]
作为替代方案,您还可以执行以下操作:
print(np.array(listA)[..., 2].tolist())
添加回答
举报