获取返回函数值的第一项
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 ..........
我正在使用 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 ..........