将字典与列表作为值进行比较,将字典与字典进行比较以生成值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将字典与列表作为值进行比较,将字典与字典进行比较以生成值相关的知识,希望对你有一定的参考价值。
拜托,我需要帮助比较下面的两个词典和一个生成器。
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
如果第一个索引器KeyError
不是字典键,则可能会引发k
。如果给定字典列表值的第二个索引器IndexError
太大,可能会引发v
。您应该仔细定义要捕获的错误以及如何管理它们。
另一答案
您可以使用以下每个键和字典本身中的值的长度来实现所需的结果:
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 < len(r) and v < len(r[k]):
print(r[k][v])
以上是关于将字典与列表作为值进行比较,将字典与字典进行比较以生成值的主要内容,如果未能解决你的问题,请参考以下文章
将字典的键与 List 的值进行比较,并返回所有匹配的值,包括重复值
我想将国家/地区列表与作为熊猫数据框 Python 中字典对象类型的列数据进行比较