python - 将列表作为值的字典与生成值的字典进行比较

标签 python python-3.x list dictionary

拜托,我需要帮助来使用生成器比较下面的两个词典。

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/

相关文章:

python - 如何从 cv2.HoughCircles 中找到最佳圆

python - 使用 for 循环填充字典(python)

python追加2d列表不能按预期工作,这是一个错误吗?

python-3.x - Python/Pandas 将字符串解析为日期和时间

python - 从 3 开始遍历列表

python - 在 Tensorflow 中训练 wordvec,导入到 Gensim

python - 无法导入模块 'lambda_function' : No module named '_speech_py_impl'

java - 方法接收更多数据类型的列表作为参数

python 列表作为嵌套列表的索引

java - 我有两个包含相同对象的列表。如何更改一个列表而不更改另一个列表?