哪种方法在python3中更好?

时间:2015-01-17 14:07:36

标签: python python-3.x dictionary try-catch production

我是python的初学者,我想知道哪种方法更好,假设我有以下代码,哪一个应该在生产中使用。

d = {}
d['a'] = set([0,1,2,0])
d['b'] = set([1,2,1,2])

方法1:

try:
    print(d['c'])
except:
    print(set())

方法2:

try:
   ans = d['c']
except:
    ans = set()
print(ans)

方法3:

if 'c' in d.keys():
    print(d['c'])
else:
    print(set())

方法4:

if 'a' in d.keys():
    ans = d['c']
else:
    ans = set()
print(ans)

1 个答案:

答案 0 :(得分:0)

tryexcept子句的工作原理如下。 执行try语句下的代码。一旦try子句中发生异常,它就会跳转到except语句。如果发生的错误对应于已执行except子句的已定义异常。

这是你想要做的:

d = {}
d['a'] = set([0,1,2,0])
d['b'] = set([1,2,1,2])

try:
    print(d['c'])     #if this doesn't exist a KeyError is raised
                     #thus it immediately jumps to the except clause
except KeyError:
    print("No such key in the dictionary")

但如果print(d['a'])没有发生异常,则跳过except子句。