[PYTHON] Como crear conjunto a partir de lista de tuplas por clave?

Iniciado por _TTFH_3500, 29 Marzo 2019, 03:07 AM

0 Miembros y 1 Visitante están viendo este tema.

_TTFH_3500

Como crear conjunto a partir de lista de tuplas por clave?
Por ejemplo tengo la siguiente lista de tuplas
Código (python) [Seleccionar]
x = [('El', 'auto'), ('el', 'auto'), ('un', 'auto'), ('algun', 'auto'), ('Los', 'camiones'),  ('UN', 'auto')]

Y quiero obtener la siguiente:
Código (python) [Seleccionar]
y =  [('el', 'auto'), ('Los', 'camiones')]
En lugar de "el" podria estar cualquiera de los determinantes usados anteriormente.

He intentado usar set() pero no se como hacer para que tome solo el segundo parametro para crear el conjunto.

He implementado el siguiente codigo pero es muy ineficiente, basicamente busca todas las ocurrencias para quedarse con una sola.

Código (python) [Seleccionar]

    nombres = [('El', 'auto'), ('el', 'auto'), ('un', 'auto'), ('El', 'camion')]
    pares = []
    palabras = list(set(x[1] for x in nombres))
    for i in range(0, len(palabras)):
        j = [det[0] for det in nombres if det[1] == palabras[i]]
        pares = pares + [(j[0], palabras[i])]
    print(pares)