Найти уникальные элементы в кортежах в списке Python

StackOverflow https://stackoverflow.com/questions/1221775

  •  10-07-2019
  •  | 
  •  

Вопрос

Есть ли лучший способ сделать это в 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)

, поскольку это улучшает читаемость. Обратите внимание, что я также превратил понимание списка в выражение генератора; нет необходимости создавать временный список.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top