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

从元组列表中创建一个列表

从元组列表中创建一个列表

温温酱 2021-07-07 13:05:20
我知道这可能很简单,但我很难做到这一点,我正在尝试从一个充满元组的现有列表列表中创建一个新列表,例如: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)] ]我想制作一个新列表,由原始列表中 [2] 元素(字母)的列表组成。所以我的新列表看起来像:newList = [ [A,B] , [B,D], [C,F], [D,F] ]我希望这很清楚。
查看完整描述

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


查看完整回答
反对 回复 2021-07-13
?
UYOU

TA贡献1878条经验 获得超4个赞

您可以使用以下嵌套理解:


[[y[2] for y in x] for x in listA]

# [['A', 'B'], ['B', 'D'], ['C', 'F'], ['D', 'F']]

内部理解具有额外的灵活性,可以处理任何长度的内部列表。


查看完整回答
反对 回复 2021-07-13
?
长风秋雁

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())


查看完整回答
反对 回复 2021-07-13
  • 3 回答
  • 0 关注
  • 209 浏览
慕课专栏
更多

添加回答

举报

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