Encontrar elementos exclusivos em tuplas em uma lista de python
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'])
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