Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: _TTFH_3500 en 29 Marzo 2019, 03:07 am



Título: [PYTHON] Como crear conjunto a partir de lista de tuplas por clave?
Publicado por: _TTFH_3500 en 29 Marzo 2019, 03:07 am
Como crear conjunto a partir de lista de tuplas por clave?
Por ejemplo tengo la siguiente lista de tuplas
Código
  1. x = [('El', 'auto'), ('el', 'auto'), ('un', 'auto'), ('algun', 'auto'), ('Los', 'camiones'),  ('UN', 'auto')]
  2.  
Y quiero obtener la siguiente:
Código
  1. 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
  1.    nombres = [('El', 'auto'), ('el', 'auto'), ('un', 'auto'), ('El', 'camion')]
  2.    pares = []
  3.    palabras = list(set(x[1] for x in nombres))
  4.    for i in range(0, len(palabras)):
  5.        j = [det[0] for det in nombres if det[1] == palabras[i]]
  6.        pares = pares + [(j[0], palabras[i])]
  7.    print(pares)
  8.