Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 2, 2019 17:29:25

gtlhbkkj
Зарегистрирован: 2019-09-20
Сообщения: 173
Репутация: +  2  -
Профиль   Отправить e-mail  

как удалить из списка одинаковые члены? Список в списке.

можно ли как-то более элегантно, кроме как методом тупого перебора, удалить из списка одинаковые члены?

 spisok = [['77682958', '852126DRGVST40', '77682958'], ['77682958', '852126DRGVST40', '852126DRGVST40'], ['77682958', '852126DRGVST40', '9650013145'], ['77893514', 'H0030RN1016V3,0', '77893514'],
          ['77893514', 'H0030RN1016V3,0', 'H0030RN1016V3,0'], ['77893514', 'H0030RN1016V3,0', 'HY13145'], ['77889504', 'H0240DN2010', '77889504'], ['77889504', 'H0240DN2010', 'H0240DN2010'],
          ['77889504', 'H0240DN2010', 'PR3145'], ['70530525', 'I175RS2010', '70530525'], ['70530525', 'I175RS2010', 'I175RS2010'], ['70530525', 'I175RS2010', '01RS17510VG10BP'],
          ['70530525', 'I175RS2010', '314539'], ['EMPTY', 'I225RS2010', '01RS22510VG10BP'], ['EMPTY', 'I225RS2010', '314540'], ['70583082', 'M0030DH3040', '70583082'], ['70583082', 'M0030DH3040', 'M0030DH3040'],
          ['70583082', 'M0030DH3040', '9650513145'], ['76900740', 'M0045DN2010', '76900740'], ['76900740', 'M0045DN2010', 'M0045DN2010'], ['76900740', 'M0045DN2010', '77680374'],
          ['76900740', 'M0045DN2010', 'Pi3145SMX10\r'], ['76900740', 'M0045DN2010', 'PI3145PS10'], ['76900740', 'M0045DN2010', '76900740'], ['76900740', 'M0045DN2010', 'M0045DN2010'],
          ['76900740', 'M0045DN2010', '183145H10XLE000P\r'], ['76900740', 'M0045DN2010', '183145H10SLE000P'], ['76900740', 'M0045DN2010', '183145H10XLE000M'], ['76900740', 'M0045DN2010', '76900740'],
          ['76900740', 'M0045DN2010', 'M0045DN2010'], ['76900740', 'M0045DN2010', '183145H10XLE000P\r'], ['76900740', 'M0045DN2010', '183145H10SLE000P'], ['76900740', 'M0045DN2010', '183145H10XLE000M'],
          ['76900740', 'M0045DN2010', '76900740'], ['76900740', 'M0045DN2010', 'M0045DN2010'], ['76900740', 'M0045DN2010', '04PI314510VG16EO'], ['76900740', 'M0045DN2010', '301040'],
          ['EMPTY', 'MH131453SP2003', 'LB131453'], ['EMPTY', 'MH13145SP1010', 'WD13145'], ['EMPTY', 'MH13145SP1010', 'DGMH13145'], ['EMPTY', 'MH13145SP10101', 'W13145'], ['EMPTY', 'MH13145SP10101', 'WD131451'],
          ['EMPTY', 'OC234', 'W131453'], ['EMPTY', 'OC289', 'W131456']]
spisok_new = []
for i in spisok:
    x = i[0] + i[1] + i[2]
    y = 0
    for k in spisok_new:
        x1 = k[0] + k[1] + k[2]
        if x == x1:
            y += 1
    if y == 0:
        spisok_new.append(i)    
        
print(spisok)
print()
print(spisok_new)
input()

Отредактировано gtlhbkkj (Ноя. 2, 2019 17:31:12)

Офлайн

#2 Ноя. 2, 2019 18:53:30

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

как удалить из списка одинаковые члены? Список в списке.

???

 print(set(spisok))



Офлайн

#3 Ноя. 2, 2019 19:26:26

rami
Зарегистрирован: 2018-01-08
Сообщения: 281
Репутация: +  72  -
Профиль   Отправить e-mail  

как удалить из списка одинаковые члены? Список в списке.

doza_and
???
print(set(spisok))
Ругается на TypeError: unhashable type: ‘list’

тогда:
 print(set(map(tuple, spisok)))
если нужны списки, можно превратить обратно в списки.

или простым перебором:
 spisok_new = []
for i in spisok:
    if i not in spisok_new:
        spisok_new.append(i)

Отредактировано rami (Ноя. 2, 2019 19:29:30)

Офлайн

#4 Ноя. 2, 2019 22:43:12

gtlhbkkj
Зарегистрирован: 2019-09-20
Сообщения: 173
Репутация: +  2  -
Профиль   Отправить e-mail  

как удалить из списка одинаковые члены? Список в списке.

rami
если нужны списки, можно превратить обратно в списки.
спасибо именно то что нужно
а как ТУПЛЕ обратно в список превратить ?
мне списки нужны

Офлайн

#5 Ноя. 2, 2019 22:48:56

rami
Зарегистрирован: 2018-01-08
Сообщения: 281
Репутация: +  72  -
Профиль   Отправить e-mail  

как удалить из списка одинаковые члены? Список в списке.

 spisok_new = list(map(list, set(map(tuple, spisok))))

Офлайн

#6 Ноя. 2, 2019 23:45:16

gtlhbkkj
Зарегистрирован: 2019-09-20
Сообщения: 173
Репутация: +  2  -
Профиль   Отправить e-mail  

как удалить из списка одинаковые члены? Список в списке.

rami
spisok_new = list(map(list, set(map(tuple, spisok))))
благодарю вас

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version