在python 3中,我有一个元组Row和一个列表A:
Row = namedtuple('Row', ['first', 'second', 'third'])
A = ['1', '2', '3']
Run Code Online (Sandbox Code Playgroud)
如何Row使用列表初始化A?请注意,在我的情况下,我不能直接这样做:
newRow = Row('1', '2', '3')
Run Code Online (Sandbox Code Playgroud)
我尝试了不同的方法
1. newRow = Row(Row(x) for x in A)
2. newRow = Row() + data # don't know if it is correct
Run Code Online (Sandbox Code Playgroud)
mgi*_*son 59
你可以Row(*A)使用参数解包来做.
>>> from collections import namedtuple
>>> Row = namedtuple('Row', ['first', 'second', 'third'])
>>> A = ['1', '2', '3']
>>> Row(*A)
Row(first='1', second='2', third='3')
Run Code Online (Sandbox Code Playgroud)
请注意,如果你的linter没有过多地抱怨使用以下划线开头的方法,那么namedtuple提供一个_makeclassmethod替代构造函数.
>>> Row._make([1, 2, 3])
Run Code Online (Sandbox Code Playgroud)
不要让下划线前缀欺骗你 - 这是这个类的文档API的一部分,并且可以依赖于所有python实现等等...
| 归档时间: |
|
| 查看次数: |
14347 次 |
| 最近记录: |