Форум сайта python.su
0
Всем привет… Сразу говорю, учебник читал, гугл копал. Не знаю как сделать… Задача такая: Надо удалить из списка одинаковые значения.
Допустим: должно превращаться в
Я не знаю, может и глупость спрашиваю. Но, всё-же хотелось найти какое-то готовое решение. Как говорится, всё знать нельзя. Заранее спасибо
Офлайн
0
Плохо читали. Про 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]:
Офлайн
13
Кто сможет сделать это без использования set?
Офлайн
857
>>> 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']
>>>
Офлайн
13
Насчет поумней не знаю, а то, что у меня на уме намного короче :)
Офлайн
0
модный вариант:
l = [e for i,e in enumerate(l) if e not in l[:i]]
l = dict(zip(l, l)).values()
Офлайн
13
Угу, хакерский вариант - это то, что я имел в виду.
dict(zip(l, l)).keys() короче :)
Офлайн
0
Edvalues идеологически правильнее :)
dict(zip(l, l)).keys() короче smile
Офлайн
0
Не плохо. Спросил простейшую вещь, и чуть не разжег холивар =D
Всем спасибо!
Офлайн
857
l = dict(zip(l, l)).values()
dict_values([1, 2, 3, 4, 5])
Офлайн