Найти уникальные элементы в кортежах в списке Python
Вопрос
Есть ли лучший способ сделать это в Python или, вернее: это хороший способ сделать это?
x = ('a', 'b', 'c')
y = ('d', 'e', 'f')
z = ('g', 'e', 'i')
l = [x, y, z]
s = set([e for (_, e, _) in l])
Я выгляжу несколько уродливо, но делаю то, что мне нужно, без написания сложного " get_unique_elements_from_tuple_list " функция ...;)
edit: ожидаемое значение s установлено (['b', 'e'])
Решение
Хорошо, для этого и нужны наборы. Я хотел бы изменить одну вещь:
s = set(e[1] for e in l)
, поскольку это улучшает читаемость. Обратите внимание, что я также превратил понимание списка в выражение генератора; нет необходимости создавать временный список.
Не связан с StackOverflow