0

在检查友好数字时,我做了以下if语句(dict 是字典):

if n == dict[lib[n]]:
        amic[n] = dict[n]

但如果n值不在字典中,则返回错误;正如它应该。但我希望它继续,因为错误意味着“它不相等”,它应该继续到下一个n

这可能吗?

4

2 回答 2

4

您可能想要dict.get()which 返回None(或您选择的另一个默认值)。例如n == lib.get(lib.get(n))

于 2013-02-01T01:22:15.137 回答
0

你可以包装在一个 try 块中,并忽略异常,但考虑到更多的上下文,可能有更好的方法......(lib[lib[n]]看起来很奇怪......)

这将捕获一个 IndexErrorlib并且amic虽然......

try:
    if n == lib[lib[n]]:
        amic[n] = lib[n]
except IndexError as e: # or KeyError if a dict
    pass
于 2013-02-01T00:16:09.823 回答