Найти - Пользователи
Полная версия: Удаление одинаковых элементов в списке.
Начало » Python для новичков » Удаление одинаковых элементов в списке.
1 2 3 4 5
boltayka
Всем привет… Сразу говорю, учебник читал, гугл копал. Не знаю как сделать… Задача такая: Надо удалить из списка одинаковые значения.

Допустим: должно превращаться в
Я не знаю, может и глупость спрашиваю. Но, всё-же хотелось найти какое-то готовое решение. Как говорится, всё знать нельзя. Заранее спасибо
Alex2ndr
Плохо читали. Про set(наборы) смотрите. Вот вам пример:
In [1]: l = ['q', 'a', 'ew', 'ewq', 'Large Hadron Collider', 'q', 'ew' ,'a']

In [2]: f = set(l)

In [3]: f
Out[3]: set(['q', 'a', 'ew', 'ewq', 'Large Hadron Collider'])

In [4]: list(f)
Out[4]: ['q', 'a', 'ew', 'ewq', 'Large Hadron Collider']

In [5]:
Ed
Кто сможет сделать это без использования set?
py.user.next
>>> l = ['q', 'a', 'ew', 'ewq', 'Large Hadron Collider', 'a', 'a', 'q', 'ew', 'a']
>>> l2 = []
>>> for i in l:
... if i not in l2:
... l2.append(i)
...
>>> l2
['q', 'a', 'ew', 'ewq', 'Large Hadron Collider']
>>> l = l2
>>> l
['q', 'a', 'ew', 'ewq', 'Large Hadron Collider']
>>>
такую или в смысле что-нибудь поумней
Ed
Насчет поумней не знаю, а то, что у меня на уме намного короче :)
pasaranax
модный вариант:
l = [e for i,e in enumerate(l) if e not in l[:i]]
хакерский вариант:
l = dict(zip(l, l)).values()
надо придумать вариант без пересоздания списка, думаю тут уже одной строчкой не обойтись
Ed
Угу, хакерский вариант - это то, что я имел в виду.
dict(zip(l, l)).keys() короче :)
pasaranax
Ed
dict(zip(l, l)).keys() короче smile
values идеологически правильнее :)

Без пересоздания списка не получается написать из-за побочных эффектов, либо получается громоздко, а значит не круто.
boltayka
Не плохо. Спросил простейшую вещь, и чуть не разжег холивар =D
Всем спасибо!
py.user.next
l = dict(zip(l, l)).values()
dict_values([1, 2, 3, 4, 5])
это на третьем
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB