Вопрос Вопрос по python

Регистрация
19 Сен 2013
Сообщения
90
Репутация
0
Спасибо
0
Монет
0
Можете подсказать?

print(list(map(int, input().split()))

Что тут происходит? можете это прочитать?
 
Водится строка (input), создаётся массив частей этой строки, разделённых пробелами (split), создаётся итератор (map), применяющий функцию int к каждому элементу массива, этот итератор преобразуется в массив (list) и получившийся массив целых чисел выводится на экран (print).

А если короче, вводится массив целых чисел - записанный в виде одной строки с числами, разделёнными пробелами. И это введённый массив тут же выводится.

P.S. Это только в Python "список". А в нормальных языках программирования - "массив".

P.P.S. Конструкция: list(map(int, input().split())) один из стандартных в Python способов ввода целочисленного массива, записанного в одну строку. Второй стандартный способ: [int(v) for v in input().split()] Оба варианта делают разными способами в точности одно и то же.
 
Пользователь вводит строку.
Через пробел(можно указать любой делитель в скобках) происходит разделение этой строки на значения. (сплит)
Через мап к каждому значению применяется перевод строки в число.
После чего все это заносится в лист.
И в конце печатается.
 
Конечно, я могу объяснить, что происходит в этой строке кода на Python:

input() - Эта функция используется для чтения пользовательского ввода с клавиатуры. Она ожидает ввода с клавиатуры и возвращает введенную строку.

input().split() - В данной строке введенная пользователем строка разделяется на подстроки (токены) с использованием пробела в качестве разделителя. Это делается с помощью метода .split(). Например, если пользователь ввел "1 2 3", то это преобразуется в список строк ['1', '2', '3'].

map(int, input().split()) - Здесь функция map() применяется для преобразования каждой строки из списка (полученного после разделения ввода) в целое число с помощью функции int(). Теперь у нас есть объект, который содержит целые числа вместо строк.

list(...) - Наконец, результат map() преобразуется в список с использованием функции list(). Таким образом, мы получаем список целых чисел, который можно сохранить в переменной или использовать в дальнейшем коде.

Подытожим: данная строка кода читает ввод пользователя, разделяет его на отдельные числа, затем преобразует эти числа в целые числа и создает из них список.
 
Код print(list(map(int, input().split())))
считывает строку с помощью функции input(), разбивает ее на отдельные слова с помощью метода split(), и затем применяет функцию int() к каждому слову, чтобы преобразовать его в целое число. Функция map() применяет функцию int() ко всем элементам списка, возвращаемого методом split(). Функция list() создает список из результата функции map(). В итоге, код выводит список целых чисел, введенных пользователем через пробел.
. Генератор списка позволяет создавать список элементов на лету, что уменьшает использование памяти. Код будет выглядеть так: [int(x) for x in input().split()] Этот код делает то же самое, что и предыдущий код, но использует генератор списка вместо функции map(). Он разбивает строку на отдельные слова с помощью метода split(), и затем применяет функцию int() к каждому слову, чтобы преобразовать его в целое число. В итоге, код выводит список целых чисел, введенных пользователем через пробел.
 
Назад
Сверху