-1
a = input() + input()
# На вход подаются данные 123456 и 23456

Как преобразовать их в множество чтобы получилось?

{1, 2, 3, 4, 5, 6...} а не {'1', '2', '3', '4', '5', '6'...}

  • Я переоткрыл вопрос, чтобы вы могли добавить свой вариант ответом. Но это так себе способ. – insolor May 25 '22 at 09:39
  • @insolor так вроде, же, попытка ответа в самом вопросе - так себе решение – Dmitry May 25 '22 at 09:47
  • @Dmitry "так себе ответ" - тоже ответ. В любом случае ответ должен быть в ответах, а не в вопросе. – insolor May 25 '22 at 09:48
  • @insolor я это и имел в виду, что ответ должен быть в ответе. Если он решает задачу, но мне не нравится по ряду причин - это другое, не относящееся к первому моему тезису. Косноязычен немного – Dmitry May 25 '22 at 09:51
  • 1
    @Dmitry вопрос был закрыт как дубликат -> автор добавил свой вариант решения в сам вопрос (потому что нельзя добавить ответ к закрытому вопросу), потом еще добавил дублирущий вопрос -> я переоткрыл вопрос, чтобы автор мог добавить ответ нормально – insolor May 25 '22 at 09:53
  • ТС, перенесите ваше решение в ответ, нажав Ответить на собственный вопрос – Dmitry May 25 '22 at 09:53
  • Готово. Вопрос решён. Задание отредактировано. – Daniil Zhernosek May 27 '22 at 10:00

5 Answers5

1

можно так:

a = set(map(int, input().split()))
Vasilijs
  • 143
  • Почти, но не совсем. Ваш код возвращал {1234567}(целое число), а надо {1, 2, 3, 4, 5, 6...}. У меня получилось решить другим путём.

    a, empty = list(input()) + list(input()), set() empty.update(int(i) for i in a)

    – Daniil Zhernosek May 25 '22 at 07:09
  • В примере в вопросе цифры подряд идут без пробелов, split не нужен, достаточно просто a = set(map(int, input() + input())) – insolor May 25 '22 at 09:36
1

UPD переделал под множества, не сразу увидел=(

Можно сразу прописать приведение типа, хоть для одного, хоть для многих стандартных вводов

int_input = int(input())

Лучше в цикл обратить вашу конструкцию

a = set()
for i in range(5):
    a.add(int(input()))

Либо принимать строку сразу и работать с ней, без многого числа input

a_str = input() # 1 2 3 4 5
a_int = {int(i) for i in a_str.split()}
Dmitry
  • 7,859
  • Этот код не подходит для решения. – Daniil Zhernosek May 27 '22 at 09:56
  • @DaniilZhernosek почему? – Dmitry May 27 '22 at 10:05
  • над получить {1, 2, 3, 4, 5, 6...} из 123456, а с этим кодом получаем {123456} – Daniil Zhernosek Jun 02 '22 at 16:59
  • @DaniilZhernosek читайте внимательнее, код работает – Dmitry Jun 03 '22 at 05:44
  • @DaniilZhernosek вы изменили вопрос, в котором указали, что последовательности подаются слитно, уже после того как дан был ответ. У меня нет дара провидения – Dmitry Jun 03 '22 at 06:19
  • пример того, какими должны быть выходные данные - был изначально. Читайте внимательнее. – Daniil Zhernosek Jun 13 '22 at 16:47
0

функция input возвращает тип str, преобразуйте её в int

0

Если цифры вводятся слитно, и каждая цифра (отдельный символ числа) должна стать отдельным элементом списка, то делайте так:

a = input() + input()
b = set(map(int, a))
print(b)

Или через set comprehension:

a = input() + input()
b = {int(x) for x in a}
print(b)
insolor
  • 49,104
0

Правильный ответ.

a, empty = list(input()) + list(input()), set()
empty.update(int(i) for i in a)