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'])

¿Fue útil?

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
scroll top