繁体   English   中英

Pythonic方式从列表中获取唯一的项目

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM