Найти - Пользователи
Полная версия: как удалить одинаковые элементы списка
Начало » Python для новичков » как удалить одинаковые элементы списка
1
MarkHammer
Подскажите пожалуйста
имеется к примеру список
s'123','123','25','34','34')
как из него удалить одинаковые элементы ? в действительности список большой - порядка 2000 элементов и на каких местах могут располагаться двойники - не известно…
получается что надо перебирать по индексам в цикле - сравнивая каждый элемент списка ? или есть какая-то функция ?
mironich
MarkHammer
Подскажите пожалуйста имеется к примеру списокs'123','123','25','34','34')как из него удалить одинаковые элементы ? в действительности список большой - порядка 2000 элементов и на каких местах могут располагаться двойники - не известно…получается что надо перебирать по индексам в цикле - сравнивая каждый элемент списка ? или есть какая-то функция ?
Сделайте из него последовательность,
set()

JOHN_16
mironich
поправочка: list и tuple это последовательности, set это множества.
dimy44
Опять ТС не уточнил, важно ли сохранение очередности элементов, ведь это определяющий фактор при выборе способа. И еще это все уже было и поиском по форуму легко находится.
MarkHammer
К сожалению множество наверное не подойдет - т.к. мне потом необходимо выбирать элементы по индексам… или из множества тоже есть способ выбрать элементы ?
FishHook
MarkHammer
К сожалению множество наверное не подойдет - т.к. мне потом необходимо выбирать элементы по индексам… или из множества тоже есть способ выбрать элементы ?
Собственно, никто же не запрещает полученное из списка множество потом опять преобразовать в список.
MarkHammer
FishHook
Спасибо ! - работает !!!
Единственное как отсортировать этот список от минимального значения к максимальному - функция sort() сортирует но в виде

'1', ‘100’, ‘1000’, ‘1001’, ‘1002’, ‘1003’, ‘1004’, ‘1005’, ‘1006’, ‘1007’, ‘1008’, ‘1009’, ‘101’, ‘1010’, ‘1011’, ‘1012’, ‘1013’, ‘1014’, ‘1015’, ‘1016’, ‘1017’, ‘1018’, ‘1019’, ‘102’, ‘1020’, ‘1021’, ‘1022’, ‘1023’, ‘1024’, ‘1025’, ‘1026’, ‘1027’, ‘1028’, ‘1029’, ‘103’, ‘1030’, ‘1031’, ‘1032’, ‘1033’, ‘1034’, ‘1035’, ‘1036’, ‘1037’, ‘1038’, ‘1039’, ‘104’, ‘1040’, ‘1041’, ‘1042’, ‘1043’, ‘1044’, ‘1045’, ‘1046’, ‘1047’, ‘1048’, ‘1049’, ‘105’, ‘1050’, ‘1051’, ‘1052’, ‘1053’, ‘1054’, ‘1055’, ‘1056’, ‘1057’, ‘1058’, ‘1059’, ‘106’, ‘1060’, ‘1061’, ‘1062’, ‘1063’, ‘1064’, ‘1065’, ‘1066’, ‘1068’, ‘1069’, ‘107’, ‘1070’, ‘1071’, ‘1072’, ‘1073’, ‘1074’, ‘1075’, ‘1076’, ‘1077’, ‘1078’, ‘1079’, ‘108’, ‘1080’, ‘1081’, ‘1082’, ‘1083’, ‘1084’, ‘1085’, ‘1086’, ‘1087’, ‘1088’, ‘1089’, ‘109’, ‘1090’, ‘1091’, ‘1092’, ‘1093’, ‘1094’, ‘1095’, ‘1096’, ‘1097’, ‘1098’, ‘1099’, ‘11’, ‘110’, ‘1100’, ‘1101’, ‘1103’, ‘1104’, ‘1105’, ‘1106’, ‘1107’, ‘1108’, ‘1109’, ‘111’, ‘1110’, ‘1112’ и т.д.

а как отсортировать ‘1’,'2', ‘3’ и т.д. ?
FishHook
Ну либо преобразовать список строк в список чисел
int_lst=map(int, str_lst)
Ну или сортировать как то так

print sorted(str_lst, key=lambda x: int(x)
MarkHammer
Спасибо всем за помощь !!! Получилось привести список к нужному виду… !!!
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