Volto aqui no tópico para corrigir a errada informação que eu dei e me desculpar por ela, usei muito a lógica e não testei por estar no celular mas enfim. Como se trata de uma lista o exemplo, só conseguimos mudar ela por ter acessado o index diretamente e alterado, aparentemente ao fazer isso, o python referencia nosso parâmetro com a lista original e faz a troca do valor, mesmo que esteja com NOME DIFERENTE no parâmetro. Porém a alteração não acontece se nós tentarmos alterar a lista toda diretamente, mesmo que TENHA O MESMO NOME.
O exemplo abaixo que testei, e a cada teste eu mudei a forma de alterar o valor e os nomes das variaveis para chegar nessa conclusão
def principal():
variavel = [1,2,3,4] #cria uma lista dentro da função principal()
modificar(variavel) #chama nossa função que altera um item da lista
print(f'Valor no principal() é {variavel}') #chamamos um print dentro dessa função para mostrar o valor da lista "variavel"
def modificar(outra):
outra[0] = 4 #modificamos o primeiro item da lista para o valor 4
print(f'Valor no modificar() é {outra}') #imprimimos na tela para se certificar
principal()