Skip to main content
 首页 » 编程设计

python之如何将元组分配给命名元组

2025年05月04日12myhome

一个简单的问题:我有一个像这样的命名元组

RowSource = namedtuple("RowSource","parcel_id str_number pre_direct prefix street_name ...") 

总共有 16 个名字。我有一个长度为 16 的元组,我想分配给命名的元组

t = (653, 
526011, 
'950', 
None, 
None, 
'county road 999', 
None, 
None, 
'tule', 
'ca', 
96134, 
9225, 
-121.400979, 
41.877468, 
'0101000020E610000080D8D2A3A9595EC0ADA415DF50F04440', 
'0101000020E610000080D8D2A3A9595EC0ADA415DF50F04440') 

最简单的方法是什么?我的意思是,我不会去做 t[0]、t[1] 等。

请您参考如下方法:

使用 *args 语法将 t 中的每个项目作为单独的参数应用:

RowSource(*t) 

或者,使用 namedtuple._make() class method :

RowSource._make(t) 

后者有一个稍微有用的 TypeError 异常消息:

>>> from collections import namedtuple 
>>> SampleTuple = namedtuple('Sample', 'foo bar baz') 
>>> SampleTuple(1, 2) 
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
TypeError: __new__() takes exactly 4 arguments (3 given) 
>>> SampleTuple._make((1, 2)) 
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
  File "<string>", line 17, in _make 
TypeError: Expected 3 arguments, got 2 

__new__() 恰好接受 4 个参数(给定 3 个) 文本,而您显然只传入了 2 个,这会让一些 Python 新用户望而却步,namedtuple_make() 类此处的方法稍微提供更多信息。