Quiero eliminar esas tuplas que tenían los mismos valores en el índice 0, excepto la primera vez. Miré otras preguntas similares pero no obtuve una respuesta particular que estaba buscando. ¿Alguien puede ayudarme? A continuación se muestra lo que intenté.
from itertools import groupby
import random
Newlist = []
abc = [(1,2,3), (2,3,4), (1,0,3),(0,2,0), (2,4,5),(5,4,3), (0,4,1)]
Newlist = [random.choice(tuple(g)) for _, g in groupby(abc, key=lambda x: x[0])]
print Newlist
mi salida esperada: [(1,2,3), (2,3,4), (0,2,0), (5,4,3)]
Una manera simple es recorrer la lista y realizar un seguimiento de los elementos que ya ha encontrado:
abc = [(1,2,3), (2,3,4), (1,0,3),(0,2,0), (2,4,5),(5,4,3), (0,4,1)]
found = set()
NewList = []
for a in abc:
if a[0] not in found:
NewList.append(a)
found.add(a[0])
print(NewList)
#[(1, 2, 3), (2, 3, 4), (0, 2, 0), (5, 4, 3)]
found
es un set
. En cada iteración verificamos si el primer elemento de la tupla ya está dentro found
. Si no, agregamos toda la tupla a NewList
. Al final de cada iteración agregamos el primer elemento de la tupla found
.
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
Déjame decir algunas palabras