gpt4 book ai didi

Python - 根据前者的键值将字典的键作为另一个字典的键值附加

转载 作者:行者123 更新时间:2023-11-30 22:14:05 24 4
gpt4 key购买 nike

我有一本字典,其中每个键都与一个列表相关联。例如:

a = ['apple', 'pear', 'banana']
b = ['car', 'plane', 'boat']
c = ['cat', 'dog', 'bird']
d = {'a' : a, 'b' : b, 'c' : c}

我有一个字典列表,其中每个字典中的特定键值将是与列表中的字符串之一匹配的字符串。如:

x = [{'thing' : 'apple'}, {'thing': 'dog'}, {'thing' : 'boat'}]

我想要做的是向每个字典添加一个键,其中值与找到字符串的列表的名称相匹配。结果是:

x = [{'thing' : 'apple', 'list' : 'a'}, {'thing' : 'dog', 'list' : 'c']}, {'thing': 'boat', 'list': 'b'}]

我已经尝试过

for k in d:
for m in x:
if m['thing'] in k:
m['list'] = k

我有一种感觉,我把这件事过于复杂化了,但一直无法弄清楚我哪里出了问题。如有任何建议,我们将不胜感激。

编辑:在将其翻译为更通用的术语时,我在帖子中忘记提及的是,a、b 和 c 中的字符串是 x 中找到的字符串的子字符串。所以 x 实际上更像 x = [{'thing' : 'apple |水果'}, {'东西': '狗|动物'},{'东西':'船|车辆'}]

最佳答案

我很欣赏上述针对此问题的评论。

As we are searching for a key inside list and a, b, c are keys of dictionary that refers/points to list. k in if m['thing'] in k refers key not the list so it should be changed to d[k].

http://rextester.com/JVRG57284

看看下面您修改后的代码(如果您对代码不满意,或者它不能满足您的需求,或者如果您的任何测试用例失败,请发表评论):

import json

a = ['apple', 'pear', 'banana']
b = ['car', 'plane', 'boat']
c = ['cat', 'dog', 'bird']
d = {'a' : a, 'b' : b, 'c' : c}

x = [{'thing' : 'apple'}, {'thing': 'dog'}, {'thing' : 'boat'}]

for k in d:
for m in x:
if m['thing'] in d[k]:
m['list'] = k

# pretty printing x dictionary
print(json.dumps(x, indent=4))

"""
[
{
"list": "a",
"thing": "apple"
},
{
"list": "c",
"thing": "dog"
},
{
"list": "b",
"thing": "boat"
}
]
"""

关于Python - 根据前者的键值将字典的键作为另一个字典的键值附加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50611834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com