当期望是列表只包含单个元素时,获取列表元素的Pythonic方法?

时间:2014-03-20 21:28:01

标签: python list built-in idiomatic

我经常遇到我正在查询返回列表的数据源的情况,但是我希望列表只包含一个元素。现在我做:

el = result_list[0]

如果列表为空,可能在try块中。但是,我不喜欢它。什么是最好的方法?这样做会很酷:

el = result_list.only()

如果列表为空或者有多个元素,也许这可能会呕吐。

1 个答案:

答案 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