我的字典包含键(可能重复也可能不重复)和值(它们都是唯一的)。当我的键值对不起作用时,我收到异常错误。当我收到异常时,我想转到下一个匹配的密钥,并尝试它的值。如果它们都不起作用,最后到达#34;异常处理程序,只需继续下一个键。
下面是一种逻辑布局,除了我当前的逻辑只会尝试另一个关键的可能性,当我想在到达"最终"之前耗尽所有关键选项。
for currentFile, originalFile in filepath_dictionary.items():
try:
relocateSource(currentFile, originalFile)
except:
# (Some logic which tries the next key, value pair in which the key matches the current key
finally:
print 'Could not relocate file: ' + currentFile
答案 0 :(得分:0)
在Python字典中,所有键都是唯一的。
答案 1 :(得分:0)
也许你应该在列表中保留重复键的值,只需在异常提升时搜索该列表。
dct = {key1: [val2_k1, val2_k1], key2: [val2_k2]}
答案 2 :(得分:0)
如果你认为你的密钥重复,但你的价值观不重要,那么你的数据结构就错了,因为字典密钥是唯一的。
有两种可能的解决方案:
采用第二种选择可以得到这样的结果:
for current_file, original_files in filepath_dictionary.items():
for original_file in original_files:
try:
relocate_source(current_file, original_file)
break
except:
pass
else:
print 'Could not relocate file: ', current_file