Python namedtuple切片

pac*_*toy 3 python arrays namedtuple

这是我的第一个问题......

如果我有一个像下面这样的名字组

 FDResult = namedtuple('FDResult', ['S', 'Payoff', 'V'])
Run Code Online (Sandbox Code Playgroud)

我有一个数组,其中包含如下所示的namedtuple集合

 bla = [FDResult(S=100.0, Payoff=0.0, V=0.4693541525097441),
 FDResult(S=102.0, Payoff=1.0, V=0.4944046100897207),
 FDResult(S=104.0, Payoff=1.0, V=0.5188897967596792),
 FDResult(S=106.0, Payoff=1.0, V=0.5427339609362274),
 FDResult(S=108.0, Payoff=1.0, V=0.5658731041633024)]
Run Code Online (Sandbox Code Playgroud)

如何获得S的数组切片?

 bla[:].S #I want to get [100.0,102.0,104.0,...] as a result
Run Code Online (Sandbox Code Playgroud)

这不适用于错误:AttributeError:'list'对象没有属性'S'...

任何建议表示赞赏.谢谢.

wim*_*wim 6

我想你想要一个列表理解,例如

[x.S for x in bla[:]]
Run Code Online (Sandbox Code Playgroud)

您当然可以在其中替换列表中更常规的切片,例如bla[1:-1:2].

  • 也可能是`for x in bla`,你不需要创建副本. (2认同)