Top.Mail.Ru
Ответы

Вопрос по Python

Можете подсказать?
print(list(map(int, input().split()))
Что тут происходит? можете это прочитать?

По дате
По рейтингу
Аватар пользователя
andrei_6534Гений

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

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

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

P.P.S. Конструкция:

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

один из стандартных в Python способов ввода целочисленного массива, записанного в одну строку. Второй стандартный способ:

1
 [int(v) for v in input().split()] 

Оба варианта делают разными способами в точности одно и то же.

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

Питон укусил?)

Аватар пользователя
krytoi_18Ученик

можно ли с этим кодом сделать в этом списке '00876536 08765360 87653600' так чтобы нули перед восьмерками оставались

Аватар пользователя
mikhail_tsybin_42Ученик

Конечно, я могу объяснить, что происходит в этой строке кода на Python:

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

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

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

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

Подытожим: данная строка кода читает ввод пользователя, разделяет его на отдельные числа, затем преобразует эти числа в целые числа и создает из них список.

Аватар пользователя
krytoi_18Ученик

Можно ли с этим кодом в этом списке '00876536 08765360 87653600' сделать так чтобы нули перед восьмерками оставались

Аватар пользователя

Код

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


считывает строку с помощью функции input(), разбивает ее на отдельные слова с помощью метода split(), и затем применяет функцию int() к каждому слову, чтобы преобразовать его в целое число. Функция map() применяет функцию int() ко всем элементам списка, возвращаемого методом split(). Функция list() создает список из результата функции map(). В итоге, код выводит список целых чисел, введенных пользователем через пробел.
. Генератор списка позволяет создавать список элементов на лету, что уменьшает использование памяти. Код будет выглядеть так:

1
 [int(x) for x in input().split()] 

Этот код делает то же самое, что и предыдущий код, но использует генератор списка вместо функции map(). Он разбивает строку на отдельные слова с помощью метода split(), и затем применяет функцию int() к каждому слову, чтобы преобразовать его в целое число. В итоге, код выводит список целых чисел, введенных пользователем через пробел.

Аватар пользователя
user_290170710Ученик

Кстати если я введу a = map(int, input().split())
а потом print(a)
ничего не сработает , почему такк?

Аватар пользователя
krytoi_18Ученик

можно ли с этим кодом в этом списке '00876536 08765360 87653600' сделать так чтобы нули перед восьмерками оставались

Аватар пользователя
tester_pcМыслитель

Пользователь вводит строку.
Через пробел(можно указать любой делитель в скобках) происходит разделение этой строки на значения. (сплит)
Через мап к каждому значению применяется перевод строки в число.
После чего все это заносится в лист.
И в конце печатается.

Аватар пользователя
tester_pcМыслитель

Главное тут смотреть за порядком скобок, чтобы понять что к чему применяется.
Каждое действие конечно можно расписать на отдельных строках, если возникают затруднения.



Видео по теме