这是我的代码
N = namedtuple("N", ['ind', 'set', 'v'])
def solve():
items=[]
stack=[]
R = set(range(0,8))
for i in range(0,8):
items.append(N(i,R,8))
stack.append(N(0,R-set(range(0,1)),i))
while(len(stack)>0):
node = stack.pop()
print node
print items[node.ind]
items[node.ind].v = node.v
在最后一行,我无法将
items[node.ind].v
的值设置为node.v
,我想要这样做,但是出现了错误。"AttributeError: can't set attribute"
我不知道出了什么问题,但它一定基于句法,因为使用像
node.v+=1
这样的语句也显示相同的错误。 我很新于Python,请建议一种使上述更改变得可行的方法。
items[i].v <8
这样的比较中,我该怎么做呢?我刚试着使用一个临时变量来存储它的值,然后用这个变量进行比较,如temp = items[i].v
然后temp<8
。 - Pratyush Dhanukanamedtuple
的属性时无需采取特殊措施。 - Ignacio Vazquez-Abramsitems[i].v]<8
一样用它进行比较的原因。我需要知道是否有任何更好的替代方法,就像答案中使用._replace()
一样。 - Pratyush Dhanuka