Organização de caracteres

palavra = list("pyton") 
acertos = []

i = 0
while i < len(palavra):
    letra = input("Digite uma letra: ")
    if letra in palavra:
        acertos.insert(palavra.index(letra),letra)
    i += 1

print(acertos)

esse código faz com que o usuário tente adivinhar a palavra pyton e a linha ( acertos.insert(palavra.index(letra),letra) ) coloca cada letra acertada que existe em palavra no array acertos e na mesma posição que esta no array palavra o problema é que as vezes da certo aparece o nome “pyton” no array acertos mais dependendo da sequencia que coloco as letras a maioria das vezes aparece bagunçado

Inicialize o acertos com mesmo tamanho da palavra

acertos = ["" for i in range(len(palavra))]

e em vez de usar o insert, faça a atribuição assim:

acertos[palavra.index(letra)] = letra
1 curtida

Em python você não precisa “quebrar” uma string numa lista para ver se a letra existe, basta…

palavra = "python"

essa linha não muda…

if letra in palavra:

E outra forma de inicializar uma lista…

acertos = list(" " * len(palavra));