[英]Python - Interate and compare over list and dict in dict in parallel
I want to iterate over a list and a dict in a dict in parallel and find the same strings.我想并行迭代一个列表和一个 dict 中的 dict 并找到相同的字符串。 If it found the same strings I want to add a value and key pair to the dicts I was iterating over.
如果它找到了相同的字符串,我想将一个值和键对添加到我正在迭代的字典中。
I sadly can't get it to work.我很遗憾无法让它工作。 I simplified the problem to make the code easier to exchange here.
我简化了问题,使代码更容易在这里交换。
x = ['a', 'c', 'f', 'h']
y = {'root_name': [
{'value01': 'key01', 'value02': 'a'},
{'value01': 'key02', 'value02': 'b'},
{'value01': 'key03', 'value02': 'c'},
{'value01': 'key04', 'value02': 'd'},
{'value01': 'key05', 'value02': 'e'},
{'value01': 'key06', 'value02': 'f'},
{'value01': 'key07', 'value02': 'g'},
{'value01': 'key08', 'value02': 'h'},
{'value01': 'key09', 'value02': 'i'},
{'value01': 'key10', 'value02': 'j'}
]}
for i, j in zip(x, y['root_name']):
if i == j['value02']:
y['root_name']['key_exists'] = True
Assuming you are trying to place key_exists in dictionaries where value of 'value02' exists in x.假设您试图将 key_exists 放在 x 中存在 'value02' 值的字典中。
x = ['a', 'c', 'f', 'h']
y = {'root_name': [
{'value01': 'key01', 'value02': 'a'},
{'value01': 'key02', 'value02': 'b'},
{'value01': 'key03', 'value02': 'c'},
{'value01': 'key04', 'value02': 'd'},
{'value01': 'key05', 'value02': 'e'},
{'value01': 'key06', 'value02': 'f'},
{'value01': 'key07', 'value02': 'g'},
{'value01': 'key08', 'value02': 'h'},
{'value01': 'key09', 'value02': 'i'},
{'value01': 'key10', 'value02': 'j'}
]}
set_x = set(x) # To speed checking for presence (only useful for larger lists)
for i in y['root_name']:
if i['value02'] in set_x:
i['key_exists'] = True
import pprint
pprint.pprint(y)
Output输出
{'root_name': [{'key_exists': True, 'value01': 'key01', 'value02': 'a'},
{'value01': 'key02', 'value02': 'b'},
{'key_exists': True, 'value01': 'key03', 'value02': 'c'},
{'value01': 'key04', 'value02': 'd'},
{'value01': 'key05', 'value02': 'e'},
{'key_exists': True, 'value01': 'key06', 'value02': 'f'},
{'value01': 'key07', 'value02': 'g'},
{'key_exists': True, 'value01': 'key08', 'value02': 'h'},
{'value01': 'key09', 'value02': 'i'},
{'value01': 'key10', 'value02': 'j'}]}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.