Форум сайта python.su
2
можно ли как-то более элегантно, кроме как методом тупого перебора, удалить из списка одинаковые члены?
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)
Офлайн
253
???
print(set(spisok))
Офлайн
72
doza_andРугается на TypeError: unhashable type: ‘list’
???
print(set(spisok))
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)
Офлайн
2
ramiспасибо именно то что нужно
если нужны списки, можно превратить обратно в списки.
Офлайн
72
spisok_new = list(map(list, set(map(tuple, spisok))))
Офлайн
2
ramiблагодарю вас
spisok_new = list(map(list, set(map(tuple, spisok))))
Офлайн