У меня есть функция, unique(a)
, которая принимает список, a
, чисел и возвращает только одно из каждого значения. В то же время он поддерживает порядок списка. У меня также есть функция, big_list(n)
, которая генерирует список len(n)
.Python - большой список эффективности
Причина, по которой я меняю направление списка, заключается в том, что при удалении значений он удаляет их из задней части исходного списка, просто чтобы сделать измененный список более чистым и читаемым при сравнении его с исходным списком ,
Функция работает, когда у меня относительно небольшая длина списка, который я создаю, но когда я получаю большие длины, например, 1 000 000 для ex, время выполнения занимает FOREVER.
Если кто-то может помочь мне, сделав мою функцию намного быстрее, это было бы здорово!
FYI: Мне нужно использовать набор в функции для задания, над которым я работаю. Мне все равно нужно удалить элементы списка со спины.
Заранее благодарен!
def big_list(n) :
# Create a list of n 'random' values in the range [-n/2,n/2]
return [ randrange(-n//2, n//2) for i in range(n) ]
def unique(a) :
a = a[::-1]
b = set(a)
for i in b :
while a.count(i) != 1 :
a.remove(i)
a.count(i)
a = a[::-1]
return a
Набор уже уникален. Он не будет содержать дубликатов. т. е. x = set (big_list (10k)), x не будет дубликатов. – Claris
Разве это не то, что делает его наихудшим примером временной сложности? –