2009-08-03 2 views
3

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

редактирования: ожидаемое значение устанавливается с ([ «B», «е» ])

+0

вы можете объяснить, что вы хотите, используя определение вместо примера? – flybywire

ответ

22

Это прекрасно, вот для чего предназначены. Одна вещь, которую я бы изменил, заключается в следующем:

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

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

Смежные вопросы