Eliminar duplicados en una lista de tuplas según el valor máximo

listo para evaluar

Supongamos que tengo una lista tuplescomo esta:

[('Machine1', 88), ('Machine2', 90), ('Machine3', 78), ('Machine1', 90), ('Machine3', 95)]

Y quiero filtrar la lista de modo que solo tenga los valores más altos correspondientes a cada tupleemparejamiento. Entonces, en este ejemplo, la lista filtrada sería:

[('Machine2', 90),('Machine1', 90), ('Machine3', 95)]

Básicamente, quiero eliminar los duplicados por el valor más alto. Sé que setsolo elimina los duplicados exactos, por lo que no podré hacer eso aquí. Pensé que otro método que podría usar sería usar un dictionaryy actualizarlo mientras recorría la lista si se veía un valor más alto. Sin embargo, ¿cuál es una forma más pitónica de abordar esto?

jpp

Aquí hay una solución que usa collections.defaultdict. La idea es iterar su lista de tuplas y agregarla a las listas. Luego use zipcon map+ maxpara crear el resultado deseado.

from collections import defaultdict

L = [('Machine1', 88), ('Machine2', 90), ('Machine3', 78),
     ('Machine1', 90), ('Machine3', 95)]

d = defaultdict(list)

for name, num in L:
    d[name].append(num)

res =  list(zip(d, map(max, d.values())))

Resultado

[('Machine1', 90), ('Machine2', 90), ('Machine3', 95)]

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Obtenga el valor máximo en una lista de tuplas

Eliminar tuplas dentro de una lista de tuplas según el valor del diccionario dentro de la tupla

Cómo eliminar duplicados en una lista de tuplas

Eliminar duplicados y sumar valores en una lista de tuplas

Eliminar duplicados de una matriz de objetos según el valor de las propiedades en JavaScript

Cómo eliminar duplicados en una columna según el valor de otras columnas en psql

Encuentra el valor máximo en una lista de tuplas en Python

Eliminar duplicados de una lista de tuplas según uno de los valores

Eliminar duplicados en una fila según el valor de la columna

¿Cómo dividir una lista de tuplas según el valor mínimo de cada tupla?

¿Cómo dividir una lista de tuplas según el valor mínimo de cada tupla?

Python 2.7: eliminar tuplas de una lista por valor en base a más de una condición

¿Encontrar el índice del elemento máximo en una lista de tuplas? (Pitón)

¿Encontrar el índice del elemento máximo en una lista de tuplas? (Pitón)

Eliminar tupla en una lista según el valor más alto del segundo índice

Eliminar tupla en una lista según el valor más alto del segundo índice

Extraiga la cadena que muestra el valor máximo en una lista de tupla con elementos duplicados

Extraiga la cadena que muestra el valor máximo en una lista de tupla con elementos duplicados

Encuentre el valor máximo en la lista de listas según el filtro en R

Cómo eliminar duplicados inversos en una lista de tuplas de C #

Cómo eliminar duplicados inversos en una lista de tuplas de C #

Seleccionar filas y eliminar duplicados según el valor de una columna

Cómo eliminar duplicados según la emisión anterior en el elemento de la lista

¿Encontrar todas las ocurrencias de valor máximo en una lista de tuplas?

Cómo ordenar una lista de tuplas según el segundo valor sin codificarlo

Cómo ordenar una lista de tuplas según el segundo valor sin codificarlo

¿Cómo puedo eliminar tuplas duplicadas de una lista basada en el valor de índice de tupla mientras mantengo el orden de las tuplas?

Eliminar duplicados según el valor de la fecha

Fusionar filas con el tipo de mapa según el valor máximo en una columna

TOP Lista

CalienteEtiquetas

Archivo