Pro-grammer Pro-grammer - 4 months ago 22
Python Question

How to fix a : TypeError 'tuple' object does not support item assignment

The following fragment of code from this tutorial: http://www.raywenderlich.com/24252/beginning-game-programming-for-teens-with-python

for badguy in badguys:
if badguy[0]<-64:
badguys.pop(index)
badguy[0]-=7
index+=1
for badguy in badguys:
screen.blit(badguyimg, badguy)


is giving me a :


TypeError: 'tuple' object does not support item assignment


I understand that this could be becuse
badguy
is a tuple. This means it is immutable(you can not change its values) Ive tried the following:

t= list(badguy)
t[0]= t[0]-7
i+=1


I converted the tuple to a list so we can minus 7. But in the game nothing happens.

Does any one know what I could do?

Thanks.

Answer

Change this

badguy[0]-=7

into this

badguy = list(badguy)
badguy[0]-=7
badguy = tuple(badguy)

Alternatively, if you can leave badguy as a list, then don't even use tuples and you'll be fine with your current code (with the added change of using lists instead of tuples)

Comments