【发布时间】:2013-01-15 02:16:23
【问题描述】:
这是我的第一个问题......
如果我有一个像下面这样的命名元组
FDResult = namedtuple('FDResult', ['S', 'Payoff', 'V'])
我有一个数组,其中包含如下所示的命名元组集合
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)]
如何获得 S 的数组切片?
bla[:].S #I want to get [100.0,102.0,104.0,...] as a result
这不适用于错误:AttributeError: 'list' object has no attribute 'S'...
任何建议表示赞赏。 谢谢。
【问题讨论】:
-
这不是切片的用途。切片从一个集合中选择一系列索引(例如,
l[-2:]返回一个包含l的最后两个元素的新列表),它不会从其成员中选择属性。 -
bla[:]只是给你一份列表的副本。切片不会取出部分元素;它只给你一些元素的子集。你想要一个列表理解,就像@wim 的回答一样。
标签: python arrays namedtuple