Что означает параметр `int` в` map` Python 3?

1
if __name__ == '__main__':
n = int(input())
arr = map(int, input().split())

В приведенном выше коде функция отображает два параметра, я получил представление о втором параметре, что он делает, но я не получаю параметр "int".

  • 3
    Вы читали документацию? Какую часть вы не поняли?
  • 3
    Ты серьезно?
Показать ещё 2 комментария
Теги:
python-3.x
dictionary
int
map-function

2 ответа

2
Лучший ответ

Скажем, я набираю 5 а затем вводим в первом приглашении:

n = int(input())

Возьмем вход "5" и превратим его в целое число 5. Итак, мы переходим от string к int

Затем мы получим другое приглашение ввода, потому что у нас снова есть вход() в следующей строке: на этот раз я наберу 123 324 541 123 134 а затем введите.

.split() разделит это на "123", "324", "541", "123", "134", который представляет собой список (ну и map) строк. Затем мы сопоставим int ними, чтобы дать себе map int а не строк. int преобразует строки в целые числа.

При проверке кода часто бывает полезно попробовать что-то в REPL (прочитать выполнение print, looper). В вашей команде promt просто введите python или python3 если вы его установили или используете replt.it. Введите a = "123" + "321" затем попробуйте 'a = int ("123") + int ("321")

Оберните это списком (map (int, input(). Split())), чтобы получить list а не map.

  • 0
    Это идеальное объяснение! Теперь, как я могу получить доступ к первому элементу списка arr? @Zev
  • 0
    Когда я пытаюсь получить доступ к первому элементу списка обр. Я получаю ошибку. ~ if name == ' main ': n = int (input ()) arr = map (int, input (). split ()) save = 0; smallNumber = arr [0] ~
Показать ещё 3 комментария
2
  • map (function, iterable) принимает функцию, которая применяется ко всем элементам списка, который передается как второй аргумент.
  • int (x) - это функция, которая возвращает целочисленный объект, построенный из числа или строки x.

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

Пример:

arr = map(int, "12 34 56".split())
print(list(arr)) # prints: [12, 34, 56]
  • 0
    Ой! Эта строка будет преобразована в целое число!
  • 2
    split разбивает его, и int преобразует каждый бит в целые числа, да.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню