获取返回函数值的第一项

Get first item of returning function value

我正在使用 kinterbasdb 模块,该模块具有名为 fetchone 的函数,returns 执行查询的结果:

cursor.execute("....")
cursor.fetchone()

这个 returns 一个元组:("value1",),我想访问第一个项目,但最后避免了 [0],因为没有说明太多,这是一个魔法数字。可能吗?也许有些内置功能?

我正在尝试:

value, _ = cursor.fetchone()

但这是返回:ValueError: need more than 1 value to unpack,因为索引 1 没有任何内容。

问题:

value, _ = cursor.fetchone()
#      ^ a variable with identifier _

是这里期望你要解包的元组中有两个元素,但是元组只包含一个元素。但是,您可以通过写一个逗号来解决这个问题,但不要像这样的变量:

value, = cursor.fetchone()
#     ^ no variable

注意你必须写逗号,:省略它将不会解压元组。

或者如果元组中的元素数量未知(但大于零),您可以使用星号:

value, *_ = cursor.fetchone()

这将解压元组 _ 中的剩余元素。如果表达式有一个只有一个元素的元组,_ 将等于 _ == ()(没有元素的元组)。例如,如果您解压缩 (1,4,2,5),它将导致 value == 1_ == (4,2,5).

通过使用其索引访问元素会更容易,希望对您有所帮助,我使用一个非常基本的示例对此进行了解释:

def test_function():

return 1,3,4,5,6

#--- Getting function output using index ----#

print('',f()[0],' \n',f()[1],'\n',f()[2],' ..........')

结果:

 1  
 3 
 4  ..........