拜托,我需要帮助将下面的两个字典与生成器进行比较。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 中的键和值的值。代码像我上面那样工作。但我不能继续做如果 - 如果有事请帮忙。
2 回答
慕侠2389804
TA贡献1719条经验 获得超6个赞
您可以直接索引,酌情处理异常:
for k, v in d.items():
try:
print(r[k][v])
except (KeyError, IndexError):
pass
# 3
# 2
KeyError如果第一个索引器k不是字典键,则可能会引发。IndexError如果v给定字典列表值的第二个索引器太大,则可能会引发。您应该仔细定义要捕获的错误以及如何管理它们。
蓝山帝景
TA贡献1843条经验 获得超7个赞
您可以使用以下方法利用每个键中的值的长度和字典本身来实现所需的结果:
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])
添加回答
举报
0/150
提交
取消