Ir para conteúdo
Fórum Script Brasil

Jonatas Cavalini

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre Jonatas Cavalini

Jonatas Cavalini's Achievements

0

Reputação

  1. Boa noite! Tenho uma lista que contém outras listas com dados referentes a nome, idade e altura de várias pessoas: pessoas = [['PAULO', 75, 1.74], ['ANDRE', 15, 1.87], ['PEDRO', 26, 1.46], ['JULIO', 75, 1.78], ['PAULO', 84, 1.88], ['JOÃO', 34, 1.56], ['SERGIO', 88, 1.74]] Feito isso, eu criei um for para encontrar pessoas com nomes repetidos. Caso encontre um nome igual, ele compara a idade. Se essa pessoa com o mesmo nome for mais velha, ele substitui a idade e a altura dessa pessoa com o mesmo nome, criando assim uma nova lista (l). Ou seja, eu não quero nomes repetidos na lista. Caso haja, ele deixa na nova lista a pessoa que for mais velha, com sua respectiva idade. Esse foi meu código: l = [] for i in pessoas: if pessoas[i][0] not in l: #SE NÃO TIVER NENHUMA PESSOA COM ESSE NOME, É INSERIDO OS DADOS DA PRIMEIRA PESSOA l.append(i) else: idadeindex = l.index(pessoas[i][0]) #SE JÁ TIVER ESSE NOME, Ó CÓDIGO PROCURA O INDEX DO NOME QUE já ESTA DENTRO DA LISTA if l[idadeindex][1] < pessoas[i][1]: #SE A IDADE DE QUEM ESTA DENTRO DA LISTA FOR MENOR DA PESSOA QUE ESTÁ FORA l[idadeindex][1] = pessoas[i][1] #POR FIM, ELE SUBSTITUI A IDADE E A ALTURA, MATENDO O NOME l[idadeindex][2] = pessoas[i][2] print(l) Ele volta esse erro: TypeError: list indices must be integers or slices, not list Sou novato em Python e não consigo fazer meu código funcionar. Alguém consegue pensar em uma forma mais fácil de fazer isso?
×
×
  • Criar Novo...