Comparar/ordenar/eliminar elementos lista
Publicado por chit00 (3 intervenciones) el 19/09/2019 21:17:41
Hola, dada la siguiente lista:
Como puedo hacer para obtener la siguiente salida:
Osea comparar el primer subelemento de los elementos de la lista, si son iguales sumar el segundo subelemento de los repetidos y unificar los elementos, para agregarlos a la lista junto con los que no se repiten.
Quería saber si se puede hacer con listas o tuplas, logre hacerlo con diccionarios, pero quería saber si se puede con listas ya que no logro dar con el código. Soy nuevo en esto se agradece cualquier tipo de ayuda.
En este sitio me pasaron el siguiente código, pero tengo duda de como funciona algunas lineas.
Si alguien me puede decir/aconsejar/guiar sobre que funciones o comandos debo informarme para resolver esta clase de problemas, me seria de gran ayuda. Repito soy nuevo en esto, y cualquier tipo de orientacion es util.
Saludos y gracias de antemano.
1
lista1=[["a",1],["b",1],["c",1],["a",4],["b",7]]
Como puedo hacer para obtener la siguiente salida:
1
[["a",5],["b",8],["c",1]]
Osea comparar el primer subelemento de los elementos de la lista, si son iguales sumar el segundo subelemento de los repetidos y unificar los elementos, para agregarlos a la lista junto con los que no se repiten.
Quería saber si se puede hacer con listas o tuplas, logre hacerlo con diccionarios, pero quería saber si se puede con listas ya que no logro dar con el código. Soy nuevo en esto se agradece cualquier tipo de ayuda.
En este sitio me pasaron el siguiente código, pero tengo duda de como funciona algunas lineas.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#En la primera linea crea las 2 variables de tipo lista y le asigna un valor, lo que no entiendo es el porque el ultimo elemento vacio de la lista.
lista1,lista2=[["a",1],["b",1],["c",1],["a",4],["b",7]],[ ]<<<<< este elemento, no entiendo el porque
#Recorrer, sorted para ordenar(en que atributo se basa para ordenar?), set es para transformar de lista a conjunto no?, no entiendo esta parte>>([Cont2[0] for Cont2 in lista1])): creo que si entiendo esto, puedo entender las lineas restantes.
for Cont in sorted(set([Cont2[0] for Cont2 in lista1])):
Suma=0
for Cont3 in lista1:
if Cont in Cont3[0]: Suma +=Cont3[1]
lista2.append([str(Cont),Suma])
print(lista2)
Si alguien me puede decir/aconsejar/guiar sobre que funciones o comandos debo informarme para resolver esta clase de problemas, me seria de gran ayuda. Repito soy nuevo en esto, y cualquier tipo de orientacion es util.
Saludos y gracias de antemano.
Valora esta pregunta
0