[英]Python - Interate and compare over list and dict in dict in parallel
我想并行迭代一个列表和一个 dict 中的 dict 并找到相同的字符串。 如果它找到了相同的字符串,我想将一个值和键对添加到我正在迭代的字典中。
我很遗憾无法让它工作。 我简化了问题,使代码更容易在这里交换。
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
假设您试图将 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)
输出
{'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.