1
resposta

Somar itens repetidos em uma lista em Python

def ordena():
    soma = []

    arquivo = open("produto_vendas_visitas.txt", "r")

    for linha in arquivo:
        valores = linha.split(";")
        soma.append((valores[0], (int(valores[1])*2) + int(valores[2])))

    arquivo.close()

    # Ordenando a lista
    soma.sort(key=lambda x: x[1], reverse=True)

    # Imprimindo a lista
    for s in soma:
        print(s)


if __name__ == '__main__':
    ordena()

A saída fica:

('ID-789', 197) ('ID-123', 174) ('ID-ABC', 174) ('ID-567', 112) ('ID-567', 84)

Os ID's 567 repetem, como faço para somar eles?

1 resposta

Eu tentaria no for que o le o arquivo, ao inves de fazer o append cegamente, antes verificar se aquele ID ja existe; se existir, adiciona o valor ao existente; senao, ai sim da o append no elemento.