我经常遇到这样的情况:我正在查询一些返回列表的数据源,但我希望该列表只包含一个元素。现在我这样做:
el = result_list[0]
可能在 try block 中以防列表为空。但是,我不喜欢它。什么是最好的方法?这样做会很酷:
el = result_list.only()
如果列表为空或包含多个元素,这可能会让人呕吐。
请您参考如下方法:
在 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
