Почему этот код создает список, который я выдаю кортежем, но не списком?

#python-3.x #list #tuples

Вопрос:

Я программирую игру, и в этом коде:

 from tkinter import Tk, Button, Canvas, messagebox, mainloop
import tkinter.ttk
from tkinter.font import *
from math import *
tk = Tk()
c = Canvas(tk,width=1920,height=950,bg="#000000")
c.pack()
fallspeed = 0
gravity = 0.2
class player:
    global playerpos
    def __init__(player,sx1,sy1,sx2,sy2):
        playerpos = list(str(sx1) str(sy1) str(sx2) str(sy2))
        for i in range(4):
            playerpos[i] = int(playerpos[i])
        playerpos
        player.sx1 = sx1
        player.sx2 = sx2
        player.sy1 = sy1
        player.sy2 = sy2
        playerpos = [sx1,sy1,sx2,sy2]
        global rect
        player.rect = c.create_rectangle(sx1,sy1,sx2,sy2,fill="#14eeee")
    def moverect(player,x,y):
        c.move(player.rect,x,y)
        playerpos[0],playerpos[2]  = x
        playerpos[1],playerpos[3]  = y
    def pickup(item):
        pass
 

это выдает ошибку, в которой говорится, что вы не можете переназначить кортежи. Почему playerpos-это кортеж, а не список?

Комментарии:

1. Вместо playerpos[0],playerpos[2] = x этого используйте playerpos[0] = x с последующим playerpos[2] = x

2. @thatotherguy Хорошо! Спасибо!