从返回元组的函数中获取单个(第一个)值的Pythonic方法是什么?
我提出了两个有效的解决方案
Byte=unpack_from('B',Inbuff,42)[0]
VS
Byte,=unpack_from('B',Inbuff,42)
我个人更喜欢第一个,因为如果返回元组有多个值,它不会中断(这里不会发生,但在更通用的情况下可能会发生)
答案 0 :(得分:0)
对于Python 3.x,我赞成第三个:
byte, *_ = unpack_from('B',Inbuff,42)
这将元组的其余部分存储在变量_
中,这是一次性变量最常用的值。
第二个对我来说很奇怪。该函数似乎不太可能仅返回仅包含一个元素的元组。第一个优点是对于那些不熟悉Python的人以及特定于它的特性(如可迭代解包)更具可读性。
对于Python 2.x,我认为第一个更好。 “可读性计数”,和它更强大。
答案 1 :(得分:0)
如果您特别想要第一个值(似乎您这样做,但您的问题只是说“单个值”而不是“第一个值”),那么您的第一个方法就更好了。第二个更像是一个Python派对技巧(并且,正如sweeneyrod指出的那样,如果它接收的元组长于一个元素,它将会中断)。