Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从元组创建命名元组?_Python_Tuples_Kinterbasdb - Fatal编程技术网

Python 从元组创建命名元组?

Python 从元组创建命名元组?,python,tuples,kinterbasdb,Python,Tuples,Kinterbasdb,我正在与kinterbasdb合作,从1998年的数据库中选择并更新一些数据(是的,不幸的是:()。kinterbasdb的API从元组中的查询返回值,例如: connection = connect(dsn="database.gdb", user="MYUSER", password="MYPASSWORD") cursor = connection.cursor() cursor.execute("SELECT * FROM TABLE_X") result = cursor.fetcho

我正在与kinterbasdb合作,从1998年的数据库中选择并更新一些数据(是的,不幸的是:()。kinterbasdb的API从元组中的查询返回值,例如:

connection = connect(dsn="database.gdb", user="MYUSER", password="MYPASSWORD")
cursor = connection.cursor()
cursor.execute("SELECT * FROM TABLE_X")
result = cursor.fetchone() # tuple => (value1, value2, value3, value4, value5)
我想把这个元组映射到一个命名的元组,可能吗


我使用的是Python 2.7.13(我能够更新kinterbasdb模块使其工作……至少)

只需使用
*
将元组作为扩展参数传递给命名的元组构造函数即可

In [1]: from collections import namedtuple

In [2]: Response = namedtuple('Response', ['thing1', 'thing2', 'thing3', 'thing4'])

In [3]: mytuple = (1, 2, 3, 4)

In [4]: Response(*mytuple)
Out[4]: DBResponse(thing1=1, thing2=2, thing3=3, thing4=4)
例如:

from collections import namedtuple
t=("value1", "value2", "value3", "value4", "value5")
Data=namedtuple("Data",["v1","v2","v3","v4","v5"])
nt=Data(*t)
>>> nt
Data(v1='value1', v2='value2', v3='value3', v4='value4', v5='value5')
或者使用
\u make
方法:

>>> Data._make(t)
Data(v1='value1', v2='value2', v3='value3', v4='value4', v5='value5')

您检查了吗?我没有找到它。谢谢!!!!虽然严格来说这不是一个错误,但我认为最好对传递给它的
namedtuple
类型使用与其名称相同的变量名。也就是说,将
Response
更改为
DBResponse
,或者反之亦然。