枚举namedtuples

时间:2013-12-07 16:30:16

标签: python

我正在尝试创建以下格式的命名元组列表

from collections import namedtuple
item = namedtuple('item', 'position state')

我想创建列表,以便项目的位置字段对应于列表中项目的位置。

到目前为止,我已经尝试过:

l = [item(position=i, state=0)]*10

然而,这会产生10个看起来像这样的项目:

item(position=(0, item(position=0, state=0))

有人可以解释发生了什么,以及是否有一种很好的(可能是一行)方式来做我想做的事。

2 个答案:

答案 0 :(得分:3)

是:

l = [item(i, 0) for i in range(10)]

答案 1 :(得分:3)

这应该有效(太慢了 - 对NPE赞不绝口:p):

l = [item(position=i, state=0) for i in range(10)]