Проблема ввода чисел в set множество

Задача: Первая строка содержит целое число, , число студентов, подписавшихся на английскую газету. Вторая строка содержит номера рулонов этих студентов, разделенные пробелами. Третья строка содержит количество студентов, подписавшихся на французскую газету. Четвертая строка содержит номера рулонов этих студентов, разделенные пробелом.

Выведите общее количество студентов, имеющих хотя бы одну подписку.

Пример ввода:

9

1 2 3 4 5 6 7 8 9

9

10 1 2 3 11 21 55 6 8

Пример вывода: 13

Количество студентов, имеющих хотя бы одну подписку: Номера бросков: и находятся в обоих наборах, поэтому они учитываются только один раз. Следовательно, общее число равно students.

Столкнулся с проблемой что в сет постоянно записываются разные значения цифр в чем проблема?

a = int(input())
print(f'a:{a}')
b = set(input())
print(f'set b:{b}')

c = int(input())
print(f'c:{c}')
d = set(input())

print(f'set d:{d}')
print(len((b)|(d)))

Ответы (1 шт):

Автор решения: Сергей

Вы же не сказали интерпретатору, как строку обрабатывать, вот он вам и обрабатывает её, как набор символов отдельных. В d и записаны все неповторяющиеся символы строки - отдельные цифры и пробел.

Рабочий код - ниже. Выводит 13, как и хотели вы.

a = int(input())
print(f'a:{a}')
b = set(map(int, input().split()))
print(f'set b:{b}')

c = int(input())
print(f'c:{c}')
d = set(map(int, input().split()))
print(f'set d:{d}')
print(len((b)|(d)))
→ Ссылка