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

Python 从返回元组的函数中获取单个(第一个)值的正确方法,python,python-2.7,python-2.x,Python,Python 2.7,Python 2.x,从返回元组的函数中获取单个(第一个)值的Python方法是什么 我提出了两个可行的解决方案 Byte=unpack_from('B',Inbuff,42)[0] VS 就我个人而言,我更喜欢第一个,因为如果返回元组有多个值,它就不会中断(这里不会发生,但在更一般的情况下可能会发生)对于Python 3.x,我更喜欢第三个: byte, *_ = unpack_from('B',Inbuff,42) 这会将元组的其余部分存储在变量\uuu中,该变量是一次性变量最常用的值 第二个对我来说似乎很奇

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

我提出了两个可行的解决方案

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


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

对于Python 3.x,我更喜欢第三个:

byte, *_ = unpack_from('B',Inbuff,42)
这会将元组的其余部分存储在变量
\uuu
中,该变量是一次性变量最常用的值

第二个对我来说似乎很奇怪。函数似乎不太可能只返回只有一个元素的元组。第一种方法的优点是,对于不熟悉Python的人和特定于Python的特性(如iterable unpacking)来说,它更具可读性


对于Python2.x,我认为第一个更好。“可读性很重要”,而且更可靠。

如果您特别想要第一个值(看起来是这样,但您的问题只是说“单个值”而不是“第一个值”),那么您的第一种方法会更好。第二个更像是Python聚会的把戏(正如sweeneyrod所指出的,如果它接收到的元组长度超过一个元素,它将被破坏)

我使用的是2.7版。(应该事先说清楚)。感谢sweeneyrod,您的解决方案对于第3版非常清楚。注意,“元组的其余部分”存储为列表,这意味着
*.
必须迭代整个元组,并丢弃大部分元组。使用
[0]
可以避免创建无用的列表。
byte, *_ = unpack_from('B',Inbuff,42)