我经常遇到我正在查询返回列表的数据源的情况,但是我希望列表只包含一个元素。现在我做:
el = result_list[0]
如果列表为空,可能在try块中。但是,我不喜欢它。什么是最好的方法?这样做会很酷:
el = result_list.only()
如果列表为空或者有多个元素,也许这可能会呕吐。
答案 0 :(得分:6)
在Python 2或3中:
>>> a, = [1]
>>> a
1
>>> a, = []
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: need more than 0 values to unpack
>>> a, = [1,2,3]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: too many values to unpack (expected 1)
在Python 3中,你也可以
>>> a,*_ = [1,2,3]
>>> a
1