从返回元组的函数中获取单个(第一个)值的正确方法

时间:2014-02-23 15:04:55

标签: python python-2.7 python-2.x

从返回元组的函数中获取单个(第一个)值的Pythonic方法是什么?

我提出了两个有效的解决方案

Byte=unpack_from('B',Inbuff,42)[0]

VS

Byte,=unpack_from('B',Inbuff,42)

我个人更喜欢第一个,因为如果返回元组有多个值,它不会中断(这里不会发生,但在更通用的情况下可能会发生)

2 个答案:

答案 0 :(得分:0)

对于Python 3.x,我赞成第三个:

byte, *_ = unpack_from('B',Inbuff,42)

这将元组的其余部分存储在变量_中,这是一次性变量最常用的值。

第二个对我来说很奇怪。该函数似乎不太可能仅返回仅包含一个元素的元组。第一个优点是对于那些不熟悉Python的人以及特定于它的特性(如可迭代解包)更具可读性。

对于Python 2.x,我认为第一个更好。 “可读性计数”,它更强大。

答案 1 :(得分:0)

如果您特别想要第一个值(似乎您这样做,但您的问题只是说“单个值”而不是“第一个值”),那么您的第一个方法就更好了。第二个更像是一个Python派对技巧(并且,正如sweeneyrod指出的那样,如果它接收的元组长于一个元素,它将会中断)。