python - 过滤包含元组字符串的 Python 字典值中的项目

标签 python dictionary

我需要根据以下内容创建一个新字典:

{'FOO': "('BAR','BAA'),('CAR','CAA')", 'FOOO': "('BAAR','BAAA'),('CAAR','CAAA')"}

我想检索字典值中元组字符串中的项目,并使用原始键和检索到的项目作为对应值创建一个新字典。检索的项目必须按位置(每个元组的第一项)。完成的字典应如下所示:

{'FOO': ('BAR','CAR'), 'FOOO': ('BAAR','CAAR')

这应该相对容易,但我一直在竭尽全力使这项工作成功。

最佳答案

您可以使用 ast.literal_eval 来解析这些字符串。然后只需提取正确的元素即可。

d = {'FOO': "('BAR','BAA'),('CAR','CAA')", 'FOOO': "('BAAR','BAAA'),('CAAR','CAAA')"}
d2 = {k: zip(*ast.literal_eval(v))[0] for k,v in d.iteritems()}
# d2 is now {'FOO': ('BAR', 'CAR'), 'FOOO': ('BAAR', 'CAAR')}

关于python - 过滤包含元组字符串的 Python 字典值中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14636295/

相关文章:

python - 将背景图片设置为QTextEdit

Python - 如何获取文本文件中的行数

python - 子图网格,图例在外面,savefig 不起作用

python 字典转换为 json 不符合预期

c# - EditorTemplate 中的 MVC 字典

java - 如何检查Map是否有重复的key?

python - 字符串列表或单个字符串中的命名元组之间的区别?

python - 如何在查询集中使用 Django __time 查找

python - Set 与 DAWG 在 Python 中检查字典中的成员资格

python - 字典排序和删除