Вопрос:
пишите программу python. Все соседние дубликаты. Например, если входной сигнал 1 3 3 4 5 5 6 6 6 2, программа должна печатать 3 5 6.
это то, что у меня есть до сих пор:
print(«Take out repeating numbers») def main(): a = int(input(«Enter a number: «)) b = int(input(«Enter a number: «)) c = int(input(«Enter a number: «)) d = int(input(«Enter a number: «)) e = int(input(«Enter a number: «)) f = int(input(«Enter a number: «)) g = int(input(«Enter a number: «)) if a == a: print(a) elif a == b: print(a) elif a == c: print(a) elif a == d: print(a) elif a == e: print(a) elif a == f: print(a) else: print(a) if b == a: print(b) elif b == b: print(b) elif b == c: print(b) elif b == d: print(b) elif b == e: print(b) elif b == f: print(b) else: print(b) if c == a: print(c) elif c == b: print(c) elif c == c: print(c) elif c == d: print(c) elif c == e: print(c) elif c == f: print(c) else: print(c) »’ if d == a or d == b or d == c or d == d or d == e or d == f or d == g: print(d) if e == a or e == b or e == c or e == d or e == e or e == f or e == g: print(e) if f == a or f == b or f == f or f == d or f == e or f == f or f == g: print(f) if g == a or g == b or g == c or g == d or g == e or g == f or g == g: print(g) »’ print(«The repeating numbers are: » , a, b, c, d, e, f, g,) main()
Он просто распечатывает все входные данные
Ответ №1
Попробуйте это однострочное понимание списка, используя groupby() из модуля itertools:
import itertools as it lst = [1, 3, 3, 4, 5, 5, 6, 6, 6, 2] [k for k, v in it.groupby(lst) if len(list(v)) > 1] => [3, 5, 6] Ответ №2input_set = [] input_num = 0 while (input_num >= 0): input_num = int(input(«Please enter a number or -1 to finish»)) if (input_num < 0): break input_set.append(input_num) print(input_set) dup = 0 new_list = [] unique_list = [] for i in range(0,len(input_set)-1): if input_set[i]==input_set[i+1] or input_set[i] == input_set[i-1]: new_list.append(input_set[i]) [unique_list.append(item) for item in new_list if item not in unique_list] print(unique_list) Ответ №3
мой ответ может быть слишком запоздалым. Но для этого вопроса.. вы можете получить дублирующее соседнее число, используя оператор if внутри логического и while-оператора цикла в виде кода ниже.
Сначала установите логический статус как True.
В вашем заявлении while, если ввод номера больше 0, продолжайте с инструкцией if, где вам нужно проверить, является ли статус False, и если следующий номер совпадает с предыдущим номером. Затем извлеките соседний номер, но обязательно преобразуйте его в строку, прежде чем соединить его с другим соседним номером.
count = 0 previous = 0 duplicate = «» num = int(input(«nPlease enter a number or -1 to finish : «)) previous = num status = True while num >= 0.0: # determine the adjacent duplicates if not status and num == previous: duplicate = duplicate + » » + str(num) print(duplicate) status = False previous = num count = count + 1 num = int(input(«Please enter a number or -1 to finish : «)) if count > 0: print(duplicate) else: print(«Finish»)
Надеюсь, мой код сможет вам помочь. Другие, не стесняйтесь критиковать и обновлять код для других людей.