使用单个元素解包元组,或者如果元组为None,则返回None

Chr*_*ris 3 python python-2.7

使用python 2.7,我有以下代码:

if result != None:
    (data,) = result
    return data

return None
Run Code Online (Sandbox Code Playgroud)

result变量从仅返回一个值的sqlite3查询返回.如果查询返回结果,我想解压缩并返回数据,否则我想返回None.上面的代码似乎过于冗长而且根本不是pythonic.有没有更好的办法?

Mar*_*ers 10

你可以使用一个if else条件:

return result[0] if result is not None else None
Run Code Online (Sandbox Code Playgroud)

或简化为:

return result[0] if result else None
Run Code Online (Sandbox Code Playgroud)

如果你不关心result可能是一些其他假y值,如空元组等.

  • 如果结果为None,我只会写`result [0],在上下文中应该相同. (2认同)