@Cevleron

Задваивается вывод, в чем ошибка?

# Даны два неупорядоченных набора целых чисел (может быть, с повторениями). 
# Выдать без повторений в порядке возрастания все те числа, которые встречаются в обоих наборах.
# Пользователь вводит 2 числа. n - кол-во элементов первого множества. 
# m - кол-во элементов второго множества. Затем пользователь вводит сами элементы множеств.
# 11 6
# 2 4 6 8 10 12 10 8 6 4 2
# 3 6 9 12 15 18
# 6 12

n=(int(input("Введите число N элементов: ")))
num_list_1=[]
for i in range(n):
    num = int(input("Введите num "))
    num_list_1.append(num)
print(num_list_1)


m=(int(input("Введите число M элементов: ")))
num_list_2 = []
for i in range(m):
    num = int(input("Введите num "))
    num_list_2.append(num)
print(num_list_2)


num_list3 = num_list_1+num_list_2

print(num_list3)
for i in num_list3:
    if num_list3.count(i) > 1:
        print(i)
  • Вопрос задан
  • 1446 просмотров
Решения вопроса 1
@dima20155
you don't choose c++. It chooses you
Печатается дважды потому что элемент '1' встречается 2 раза в списке: 0 позиция и последняя (-1) позиция. Последние три строчки нужно изменить:
checked_nums_list = []
for i in num_list3:
    if num_list3.count(i) > 1 and i not in checked_nums_list:
        checked_nums_list.append(i)
        print(i)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@igor6130
Попробуйте сделать так
for i in set(num_list3):
    if num_list3.count(i) > 1:
        print(i)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы