2014-12-11 5 views
0

Я пишу программу для хранения информации о праздничных пакетах. Мне нужно вывести пункт назначения, но я не уверен, как печатать его без каких-либо дубликатов.Удаление дубликата из кортежа в списке

for n in packagelist: 
      print (n[0]) 

n [0] будет содержать место назначения, и я хочу, чтобы он выводился без одного и того же адресата, напечатанного дважды.

+0

Вы можете добавить вещи в набор по мере их печати и проверить, находятся ли они уже в наборе перед их печатью. – khelwood

ответ

0

если n[0] является местом, и вы хотите, чтобы пропустить все кортежи с направлениями, которые вы видели раньше, повелительны:

seen = set() 
for n in packagelist: 
    if n[0] not in seen: 
     print (n[0]) 
     seen.add(n[0]) 

Наборы содержат все уникальные элементы и позволяют быстрый поиск. Каждый раз, когда вы печатаете пункт назначения, добавьте его в набор, и если он появится снова, пропустите его.

В качестве альтернативы вы можете построить set уникальных пунктов назначения, которые проще использовать повторно и менее настоятельно.

destinations = set(n[0] for n in packagelist) 
+0

Мне пришлось переместить visible.add (n [0]) в оператор if, но кроме этого он отлично работал, спасибо – Pudie12

+0

@ Pudie12 hm weird. Было бы лучше для производительности, но все равно должен давать одинаковый результат в любом случае. –

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