Форум сайта python.su
0
def clean_list(list_to_clean): def del_list(list, x): dellist = [] ter = (len(list)-1-x) y = x+1 for i in range(ter): if list[x]==list[y] and type(list[x])== type(list[y]): dellist.append(y) y=y+1 return dellist lent = len(list_to_clean) b = [] x = 0 for i in range(lent-1): b.extend(del_list(list_to_clean, x)) x = x+1 b = list(set(b))[::-1] for i in b: del list_to_clean[i] return list_to_clean
[0, 'q', 'qq', 'qqq', 'qqq', 'qqq', 'qqqq', 0, 'qqq']
Офлайн
568
0x420ГДЕ ОШИБКА?
выдает ошибку
Офлайн
0
a = [0, 'q', 'qq', 'qqq', 'qqq', 'qqq', 'qqqq', 0, 'qqq']
Отредактировано 0x420 (Сен. 16, 2015 15:49:40)
Офлайн
568
А что за задача? Давайте мы лучше по-своему напишем, а то в вашем коде ковыряться это то еще удовольствие.
Офлайн
0
Это задача с онлайн курсов
ПРАКТИЧНЕ ЗАВДАННЯ 5.1 (1.2/1.5 балів)
Розробити функцію clean_list(list_to_clean),
яка приймає 1 аргумент – список будь-яких значень (рядків, цілих та дійсних чисел) довільної довжини,
та повертає список, який складається з тих самих значень, але не містить повторів елементів. Це значить, що у випадку наявності значення в початковому списку в кількох екземплярах перший “екземпляр” значення залишається на своєму місці, а другий, третій та ін. видаляються.
Наприклад
Виклик функції: clean_list()
Повертає:
Виклик функції: clean_list()
Повертає:
Виклик функції: clean_list()
Повертає:
Виклик функції: clean_list()
Повертає:
s=[1, 2, 1, 1, 3, 4, 5, 21, 33, 4, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5] c=[] for i in s: if i not in c: c.append(i) print c
Офлайн
568
К сожалению, я мову не понимаю, придётся вам ждать украинца.
Офлайн
0
я переведу:
Разработать функцию clean_list(list_to_clean), которая принимает 1 аргумент - список каких либо значений(строк, целых и чисел с плавающей точкой) любой длины, и возвращает список который состоит из тех же значений но не содержит повторов элементов. Это значит что в случае наличия значения в начальном списке в нескольких экземплярах первый экземпляр значения останется на своем месте, а второй, третий удаляются
Офлайн
24
Ну как бы есть set. Странные какие-то курсы
>>> lst = [1, 1, 1, 2, 3] >>> set(lst) {1, 2, 3} >>>
Отредактировано ayb (Сен. 16, 2015 16:28:18)
Офлайн
568
#!/usr/bin/env python # -* coding: utf-8 -*- def unique_list(lst): result = [] in_lst = set() for i in lst: if i not in in_lst: result.append(i) in_lst.add(i) return result s = [1, 0, "ss", 4.0, "ss", 0, 33, 4.0] print (unique_list(s))
Офлайн
568
aybset не сохраняет порядок!!!
Ну как бы есть set. Странные какие-то курсы
Это значит что в случае наличия значения в начальном списке в нескольких экземплярах первый экземпляр значения останется на своем месте
Отредактировано FishHook (Сен. 16, 2015 16:30:11)
Офлайн