Ziv*_*iva 2 python list namedtuple
我有一个列表namedtuples,例如下面的例子:
from collections import namedtuple
Example = namedtuple('Example', ['arg1', 'arg2', 'arg3'])
e1 = Example(1,2,3)
e2 = Example(0,2,3)
e3 = Example(1,0,0)
e4 = Example(1,2,3)
e5 = Example(2,3,5)
full_list = [e1, e2, e3, e4, e5]
Run Code Online (Sandbox Code Playgroud)
我想在列表中的元素中列出给定参数的所有值,例如:for param''a arg1a list [1,0,1,1,2]和for param' arg2'有一个list [2,2,0,2,3]
如果我提前知道参数,我可以使用for循环,如
values = []
for e in full_list:
values.append(e.arg1)
Run Code Online (Sandbox Code Playgroud)
但是我如何编写一个可用于任何参数的通用函数?
您可以使用,operator.attrgetter如果您想通过属性名称获取它,或者operator.itemgetter如果您想通过"position"访问它:
>>> import operator
>>> list(map(operator.attrgetter('arg1'), full_list))
[1, 0, 1, 1, 2]
>>> list(map(operator.itemgetter(1), full_list))
[2, 2, 0, 2, 3]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
358 次 |
| 最近记录: |