将字典与列表作为值进行比较,将字典与字典进行比较以生成值

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])

以上是关于将字典与列表作为值进行比较,将字典与字典进行比较以生成值的主要内容,如果未能解决你的问题,请参考以下文章

将两个字典与 numpy 矩阵作为值进行比较

将字典的键与 List 的值进行比较,并返回所有匹配的值,包括重复值

我想将国家/地区列表与作为熊猫数据框 Python 中字典对象类型的列数据进行比较

将字典列表中存在的多个 id 与模型 django 的 id 进行比较

Python字典的使用与处理

将携带字典对象的 NSdata 与 String 进行比较