python - 如何将以下嵌套的 dict 列表解压缩为元组?

标签 python python-3.x data-structures tuples list-comprehension

我有一个像这样的非常大的嵌套列表:

a_lis = [[{'A': 'the', 'B': 'US3---'}, {'A': 'the', 'B': 'PS3N'}, {'A': 'the', 'B': 'P3N'}, {'A': 'quick', 'B': 'GS'}, {'A': 'quick', 'B': 'NCMSN-'}, {'A': 'fox', 'B': 'YN-'}, {'A': 'it', 'B': 'VI--2PSA--N-'}, {'A': 'jumping', 'B': 'GNM-'}]]

如何转化成:

[('the', 'US3---'), ('the', 'PS3N'), ('the', 'P3N'), ('quick', 'GS'), ('quick', 'NCMSN-'), ('fox', 'YN-'), ('it's, 'VI--2PSA--N-'), ('jumping', 'GNM-')]

我尝试过:

tuples = ['{}'.join(x) for x in a_list[0]]

和:

values = [','.join(str(v) for v in a_list)]

主要问题是我不知道如何管理 }{ 字符。有人可以解释哪种是使用理解列表管理它们的最佳方法吗?

最佳答案

修复输入行中字符串的语法错误,您可以使用类似

的内容来确保正确的顺序
>>> list(map(lambda d: (d['A'], d['B']), a_lis[0]))

[('the', 'US3---'),
 ('the', 'PS3N'),
 ('the', 'P3N'),
 ('quick', 'GS'),
 ('quick', 'NCMSN-'),
 ('fox', 'YN-'),
 ("it's", 'VI--2PSA--N-'),
 ('jumping', 'GNM-')]

或等效于列表理解

>>> [(d['A'], d['B']) for d in a_lis[0]]

[('the', 'US3---'),
 ('the', 'PS3N'),
 ('the', 'P3N'),
 ('quick', 'GS'),
 ('quick', 'NCMSN-'),
 ('fox', 'YN-'),
 ("it's", 'VI--2PSA--N-'),
 ('jumping', 'GNM-')]

如果 a_lis 的项目超出了您希望在元组列表中也包含的第一个索引之外的更多列表,您可以解包。

list(map(lambda d: (d['A'], d['B']), *a_lis))

关于python - 如何将以下嵌套的 dict 列表解压缩为元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42489618/

相关文章:

python - JAX 中的条件更新?

python - 训练集的不同 MSE 结果

python - 创建超链接以通过 python 访问多个 Excel 工作表

python - 使用 python 进行 Elastic Search 批量更新,如何使用新数据追加数组字段

Python:为什么我的 write 函数在 while 循环中不起作用?

python-3.x - 使用df索引范围的条件

algorithm - 如何在kd树结构中存储三角形?

python - 用调用子进程替换当前进程?

javascript - 如何将此递归函数转换为迭代函数?

arrays - 如何证明从完全二叉树到数组的转换?