拜托,我需要帮助来使用生成器比较下面的两个词典。
r = {1:['1', '2', '3'], 2:['1', '2', '3'], 3:['1', '2', '3', '4', '5']}
d = {2: 2, 1: 4, 3: 1}
for k,v in d.items():
if k == 2 and v == 1:
print(r[2][1])
if k == 2 and v == 2:
print(r[2][2])
if k == 2 and v == 3:
print(r[2][3])
我想要做的是从r打印等于d中的键和值的值。该代码工作正常,正如我在上面尝试过的那样。但我不能继续做如果-如果的事情请帮忙。
最佳答案
您可以直接索引,并适当处理异常:
for k, v in d.items():
try:
print(r[k][v])
except (KeyError, IndexError):
pass
# 3
# 2
如果第一个索引器 k
不是字典键,则可能会引发 KeyError
。如果给定字典列表值,第二个索引器 v
太大,则可能会引发 IndexError
。您应该仔细定义要捕获哪些错误以及如何管理它们。
关于python - 将列表作为值的字典与生成值的字典进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54215520/