Найти - Пользователи
Полная версия: Удаление одинаковых элементов из списка
Начало » Python для новичков » Удаление одинаковых элементов из списка
1 2
ingfa_1981
checkio = [1, 2, 3, 2, 1]
checkio1 = []
for i in checkio:
    if i not in checkio1:
        checkio1.append(i)
checkio = []
for j in checkio1:
    if j not in checkio:
        checkio.append(j)
print(checkio)

Есть такой код нужно изменить сам список checkio, правильно ли я это сделал или же есть решения проще?
Если есть то почему? Читал на форуме похожую тему но ответа не нашел
Lexander
>>> a = [1, 2, 3, 2, 3, 4]
>>> a
[1, 2, 3, 2, 3, 4]
>>> b = set(a)
>>> b
{1, 2, 3, 4}
>>> c = list(b)
>>> c
[1, 2, 3, 4]
>>>
ingfa_1981
А вот список (а) изменить как ?
и наоборот вернуть все не уникальные элементы, которые повторяются?
Lexander
Если нужно не просто удалить дубликаты, а вообще удалить все элементы, которые встречаются 2 и больше раз, то
>>> a = [1, 2, 3, 2, 3, 4]
>>> b = set(a)    # get clear set without dublicates
>>> c = set([x for x in a if a.count(x) > 1])    # check
>>> d = list(b - c)    # use subtraction operator on sets
>>> d
[1, 4]
>>>
ingfa_1981
А если изменить список
a = [1, 2, 3, 2, 3, 4]
, что бы получилось
 a =  [2, 3, 2, 3]
, что нужно мне сделать ?
Budulianin
ingfa_1981
что нужно мне сделать ?

for elem in a:
   эту строчку додумай сам 
        a.remove(elem)
ingfa_1981
a = [1, 2, 3, 2, 3, 4]
for elem in a:
   if a.count(elem) == 1:
        a.remove(elem)
print(a)

спасибо
JOHN_16
Budulianin
Может быть я тебя не допонял, но мы же знаем про грабли этого приема:
>>> a=range(10)
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> for i in a:
...     a.remove(i)
...
>>> a
[1, 3, 5, 7, 9]
py.user.next
>>> def f(lst):
...     s = set()
...     return [i for i in lst
...             if i not in s and (s.add(i) or True)]
... 
>>> checkio = [1, 2, 3, 2, 1]
>>> checkio = f(checkio)
>>> checkio
[1, 2, 3]
>>>
Budulianin
JOHN_16
Может быть я тебя не допонял, но мы же знаем про грабли этого приема:

Да, недописал.
 for elem in a[:]:

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