Доброго дня.
Я совсем новичок. На Codewars попалась задача, где надо два списка, состоящих только из целых чисел, объединить в один, отсортировать по возрастанию и удалить повторяющиеся числа. Я знаю, что список можно превратить в множество, а потом обратно в список. Но решил сделать это через цикл, и почему-то в некоторых случаях у меня какое-либо из чисел остаётся в двух экземплярах. Вот мой код:
def nums(x,y):
i = x+y
i.sort(reverse=False)
for a in i:
if i.count(a)>1:
i.remove(a)
return i
В данном случае, программа оставляет два числа со значением (-18), если в качестве переменных задаются следующие списки:
x=[100, 99, 98, 97, 91, 85, 84, 80, 79, 77, 76, 74, 70, 68, 67, 66, 64, 63, 63, 61, 59, 56, 56, 54, 53, 52, 49, 41, 40, 39, 36, 35, 30, 25, 16, 13, 13, 6, 6, 6, 2, -3, -5, -12, -14, -18, -18, -18, -19, -19, -19, -20, -23, -26, -26, -26, -28, -32, -34, -34, -40, -40, -44, -46, -46, -49, -54, -55, -56, -57, -61, -62, -62, -64, -65, -65, -66, -68, -70, -70, -71, -72, -76, -77, -77, -79, -82, -85, -87, -88, -90, -92, -99]
y=[100, 99, 66, 60, 58, 50, 47, 44, 38, 37, 36, 36, 26, 14, -6, -46, -51, -53, -54, -66, -71, -75, -81, -84, -87]
При этом как видите есть три числа (-19) и остаётся только одно.
Подскажите пожалуйста где ошибка и почему остаётся одно задвоенное число. Спасибо.
Я совсем новичок. На Codewars попалась задача, где надо два списка, состоящих только из целых чисел, объединить в один, отсортировать по возрастанию и удалить повторяющиеся числа. Я знаю, что список можно превратить в множество, а потом обратно в список. Но решил сделать это через цикл, и почему-то в некоторых случаях у меня какое-либо из чисел остаётся в двух экземплярах. Вот мой код:
def nums(x,y):
i = x+y
i.sort(reverse=False)
for a in i:
if i.count(a)>1:
i.remove(a)
return i
В данном случае, программа оставляет два числа со значением (-18), если в качестве переменных задаются следующие списки:
x=[100, 99, 98, 97, 91, 85, 84, 80, 79, 77, 76, 74, 70, 68, 67, 66, 64, 63, 63, 61, 59, 56, 56, 54, 53, 52, 49, 41, 40, 39, 36, 35, 30, 25, 16, 13, 13, 6, 6, 6, 2, -3, -5, -12, -14, -18, -18, -18, -19, -19, -19, -20, -23, -26, -26, -26, -28, -32, -34, -34, -40, -40, -44, -46, -46, -49, -54, -55, -56, -57, -61, -62, -62, -64, -65, -65, -66, -68, -70, -70, -71, -72, -76, -77, -77, -79, -82, -85, -87, -88, -90, -92, -99]
y=[100, 99, 66, 60, 58, 50, 47, 44, 38, 37, 36, 36, 26, 14, -6, -46, -51, -53, -54, -66, -71, -75, -81, -84, -87]
При этом как видите есть три числа (-19) и остаётся только одно.
Подскажите пожалуйста где ошибка и почему остаётся одно задвоенное число. Спасибо.