2
我是一個Python初學者,我在迭代列表時遇到了問題。這是一張我遇到的麻煩代碼:Python - TypeError:'int'對象沒有屬性'__getitem__'
for x in list(xrange(instance.nbw)):
sddpbw.append(choice(sddpfw))
print sddpbw
for t in reversed(list(xrange(instance.T))):
if t>0:
for u in sddpbw:
# for n in list(xrange(1,instance.NUMPATHS+1,passo)):
for n in pairs[t][u-1]:
if n != u:
for p in instance.HP:
x[n-1][t-1][p-1]=x[u-1][t-1][p-1]
我有一個以前的列表(sddpfw),並希望chosse從它的一些元素,並創建另一個列表(sddpbw)。 出口是:
[4, 2]
Traceback (most recent call last):
File "PDDE.py", line 179, in <module>
x[n-1][t-1][p-1]=x[u-1][t-1][p-1]
TypeError: 'int' object has no attribute '__getitem__'
但如果我評論說,創建了變量sddpbw的部分和碼的手動創建它,它工作正常:
# for x in list(xrange(instance.nbw)):
# sddpbw.append(choice(sddpfw))
sddpbw=[4, 2]
print sddpbw
我不能弄清楚爲什麼發生這種情況。
您認爲''''''應該在第二個for循環中怎麼辦? – rlms
爲什麼'for x in list(xrange(...))'?當xrange(...)中的x能夠正常工作嗎?更不用說'for x in reverse(list(xrange(...))):'這可以通過'for x in xrange(instance.T - 1,-1,-1):'來處理。 –
的確,'list(xrange(x))'省去了'range'範圍內使用'xrange'的內存節省。 – rlms