当前位置: 代码迷 >> python >> 获取返回函数值的第一项
  详细解决方案

获取返回函数值的第一项

热度:50   发布时间:2023-06-13 15:09:20.0

我正在使用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)

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

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  ..........
  相关解决方案