Skip to main content
 首页 » 编程设计

python之获取返回函数值的第一项

2025年05月04日23jackei

我正在使用 kinterbasdb 模块,该模块有一个名为 fetchone 的函数,它返回查询执行的结果:

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

这将返回一个元组:("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)。