我需要根据以下内容创建一个新字典:
{'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/