Задача найти уникальное число в списке.
К примеру:
find_uniq([ 1, 1, 1, 2, 1, 1 ]) == 2
Изначально, я написал следующий код:
def find_uniq(arr):
x = sorted(arr)
if x[0] == x[1]:
return x[-1]
elif x[0] > x[1]:
return x[0]
else:
return []
Но он подходит для целых положительных чисел. Если они отрицательные или как положительные так и отрицательные, то метод сравнения не подходит.
Потом я написал следующий код:
arr = [-1, -2, -1, -1]
for i in range(arr[0], arr[-1]):
while i[0] == i[-1]: # я перебираю крайние значения списка с помощью цикла</i>
arr.remove([0]) # если они равны, то я сокращаю его на проверенные уже крайние значения</i>
arr.remove([-1])
if i[0] != i[-1]: # если нахожу несоответствия, то значит одно из двух чисел уникальное.</i>
break
print(i[0], i[-1])
else:
continue
Но цикл не выводит эти числа. Пожалуйста, укажите на ошибку. Я понимаю, что возможно, есть очень простое решение поставленной задачи и я обязательно его рассмотрю. Но сейчас я учусь и хочу через данную задачу еще лучше разобраться с циклами. Поэтому прошу, если это будет возможно, не исправлять метод решения и помочь исправить данный код. Спасибо!