[英]Pythonic way to take the only item from a list
有时函数返回一个列表,但是你知道它只有一个项目。 获得它的一种方法是
a = somefunc()[0]
如果列表中有多个项目,则会以静默方式丢弃它们。
本文建议使用
(a,) = somefunc()
评论建议只是
a, = somefunc()
两者都有一个优点,即具有多个元素的数组会产生一个ValueError: too many values to unpack
。 它们还可以处理元组,集合和其他集合。
这些方法是否被认为是Pythonic或混淆? 他们有任何缺点吗?
我一直很喜欢
(a,) = somefunc()
正是由于文章中指出的原因。 它假定列表中只有1个元素。 它更容易阅读。 它为你做出了断言。
如果您使用的是Python3,一个好方法是将剩余的值解压缩到一个可以访问的变量中。 这样可以避免在返回多个值的情况下引发ValueError。
>>> a, *b = ['this', 'that', 'other']
>>> a
'this'
>>> b
['that', 'other']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.