Pergunta

Existe uma maneira melhor de fazer isso em python, ou melhor: Esta é uma boa maneira de fazê-lo

?
x = ('a', 'b', 'c')
y = ('d', 'e', 'f')
z = ('g', 'e', 'i')

l = [x, y, z]

s = set([e for (_, e, _) in l])

I parece um pouco feio, mas faz o que eu preciso sem escrever uma função complexa "get_unique_elements_from_tuple_list" ...;)

edit: esperava valor de s é set ([ 'b', 'e'])

Foi útil?

Solução

Isso é bom, isso é o que conjuntos são para. Uma coisa que eu mudaria é a seguinte:

s = set(e[1] for e in l)

uma vez que aumenta a legibilidade. Note que eu também virou a compreensão lista em uma expressão gerador; não há necessidade de criar uma lista temporária.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top