我有一个像这样的非常大的嵌套列表:
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/