1
resposta

[Dúvida] [Dúvida] Laço for na criação da lista de tuplas

Não entendi esta parte em negrito do código...
codigo_estudantes = []

for i in range(len(estudantes)):
codigo_estudantes.append((estudantes[i], estudantes[i][0] + gera_codigo()))
codigo_estudantes

Na vídeo aula o professor explicou que se utilizasse somente estudantes[i] traria o nome "completo" e com o [0] faria o append só do primeiro nome. Fiz um teste no meu código adicionando um 'sobrenome' para os alunos e ao realizar o print da lista de tupla os nomes ficaram compostos da mesma forma. Desde já agradeço pela atenção.

1 resposta

Olá Matheus, tudo bem?

Quando você utiliza estudantes[i], você está acessando o nome completo do estudante na posição i da lista. Por exemplo, se o nome for "João Silva", estudantes[i] retornará "João Silva".

Por outro lado, quando você usa estudantes[i][0], você está acessando o primeiro caractere (ou letra) do nome do estudante. O índice [0] indica que você quer o primeiro elemento da string, que é a inicial do nome. Portanto, se o nome for "João Silva", estudantes[i][0] retornará "J".Se você adicionou sobrenomes e o seu código está retornando os nomes completos, isso pode ser porque você não está utilizando o índice [0] corretamente.

Para que a tupla contenha apenas a inicial do nome, você deve garantir que está acessando a letra inicial da string do nome:

estudantes = ["João Silva", "Maria Oliveira", "José Santos", "Cláudia Lima", "Ana Costa"]

codigo_estudantes = []

for i in range(len(estudantes)):
    codigo_estudantes.append((estudantes[i], estudantes[i][0] + gera_codigo()))

print(codigo_estudantes)

Nesse caso, mesmo que os nomes sejam compostos, a inicial ainda será a primeira letra do primeiro nome.

Se você quiser que a tupla contenha o nome completo, você deve usar apenas estudantes[i] na tupla.

Espero ter ajudado.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!