2017-07-28 41 views
0

我有一些逻辑正在使用两个字典中的相同字符进行一些检查和计算,并根据计算结果将maximum字符附加到result_list。Python - 如果参数为空

do = dict(dict_b) 
output = {::::logic to figure out which key/values to use for maximum::::} 

maximum = max(output, key=output.get) 
    final_list.append(maximum) 

当没有更多的字符为最大,我得到一个ValueError: max() arg is an empty sequence错误,这是有点期待。

发生这种情况时,我想从alternate_list中取一个字符,并将其添加到final_list中。

如何添加检查以查看max()是否为空序列并执行其他操作(从alternate_list追加)?

谢谢。

+2

把它放在'try' /'catch'块内,所以当发生'ValueError'异常时,你做'当这发生了'部分? – davedwards

+0

难道你不能只使用一个'if',并且只在'output'不是空的时候调用'max',然后附加在'else'中?这可能会违反Python的“宽恕权限”原则,但在知道失败的地方不断捕捉异常可能并不是很好。 – Carcigenicate

+2

这些将会是python中的try/except块。 – JacobIRR

回答

1

A try/except作为其他人(@JacobIRR,@downshift)已注意到,应该做的伎俩。

do = dict(dict_b) 
output = {::::logic to figure out which key/values to use for maximum::::} 

try: 
    maximum = max(output, key=output.get) 
    final_list.append(maximum) 
except ValueError: 
    final_list.append(ALTERNATEVALUE)