【发布时间】:2020-07-12 10:26:21
【问题描述】:
我想并行迭代一个列表和一个字典中的字典并找到相同的字符串。如果它找到相同的字符串,我想将值和键对添加到我正在迭代的字典中。
很遗憾,我无法让它工作。我简化了问题,让代码在这里更容易交换。
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
【问题讨论】:
-
“并行”可能意味着多个线程无济于事。也许第一句话应该是我想遍历一个列表和一个字典中的字典来查找匹配的字符串。这听起来准确吗?
-
匹配的字符串总是在
value02吗? -
在您的示例中,预期的输出是什么?您是否只想将“root_name”列表中的前 4 个字典顺序与
x中的 4 个值进行比较? -
根据您的目标,可能就像用
j['key_exists'] = True替换y['root_name']['key_exists'] = True一样简单。那么列表中的第一个字典是{'value01': 'key01', 'value02': 'a', 'key_exists': True}。
标签: python list loops dictionary if-statement