Encuentra elementos únicos en tuplas en una lista de Python
Pregunta
¿Hay una mejor manera de hacer esto en Python, o más bien: ¿Es esta una buena manera de hacerlo?
x = ('a', 'b', 'c')
y = ('d', 'e', 'f')
z = ('g', 'e', 'i')
l = [x, y, z]
s = set([e for (_, e, _) in l])
Me veo un poco feo pero hace lo que necesito sin escribir un complejo "get_unique_elements_from_tuple_list" función ...;)
editar: se establece el valor esperado de s (['b', 'e'])
Solución
Está bien, para eso están los sets. Una cosa que cambiaría es esto:
s = set(e[1] for e in l)
ya que mejora la legibilidad. Tenga en cuenta que también convertí la comprensión de la lista en una expresión generadora; no es necesario crear una lista temporal.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow