2017-01-13 3 views
0

У меня есть список, загруженный с жесткого диска, и выведите еще один список из Интернета, оба названия городов. Я хочу объединить два списка вместе и удалить любые повторяющиеся имена, чтобы они отображались только один раз в списке с жесткого диска. Я видел простой способ сделать это и, если не сравнить их, и в подобной ситуации он работал, но сейчас он не удаляет дубликаты, а вместо этого он дает мне список один и список два, неотредактированный, когда он возвращается на жесткий диск.Удаление дубликатов между двумя списками

Первоначальная концепция Я был

for x in townname: 
    if x not in towns: 
     towns.append(x) 
     print(x) 

Это просто копирует песни2 для перечислять один и не удаляет ничего. Когда я переключаю название города и города вокруг него, происходит полная противоположность.

Как получить его для удаления дубликата при копировании остального из города в города?

+0

Если вы получите этот список из Интернета, он может быть в байтах, поэтому проверка членства может завершиться неудачей. В любом случае, стоит использовать 'print', чтобы увидеть, есть ли такое несоответствие. –

+0

Я преобразовываю исходный список на str, чтобы я мог проанализировать html-код и вытащить список из html-кода. – confused

+0

Что Джим сказал и преобразует оба наборы. Делает такие операции очень легко. –

ответ

0

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

В вашем случае вы можете просто объединить два списка, преобразовать объединенный список в set() и преобразовать набор обратно в список. Ниже приведен минимальный пример с использованием двух списков:

>>> l = [1, 2, 3, 4, 5] 
>>> l2 = [4, 5, 6, 7, 8] 
>>> list(set(l + l2)) 
[1, 2, 3, 4, 5, 6, 7, 8] 
>>> 
Смежные вопросы