Python аргумент max () считается пустым? - PullRequest
0 голосов
/ 10 июля 2020
arr = map(int, input().split())
print(min(arr))
print(max(arr))

Здесь max(arr) считается пустым аргументом. Почему?

Ответы [ 3 ]

3 голосов
/ 10 июля 2020

После однократной итерации объекта-итератора map он становится «пустым».

Попробуйте следующее:

arr = list(map(int, input().split()))
print(min(arr))
print(max(arr))

map не возвращает список.

2 голосов
/ 10 июля 2020

map() возвращает что-то вроде <map object at 0x026FC9B8>, которое опустеет, когда программа выполнит его итерацию.
Это дает вам эту ошибку, потому что после использования min() в объекте карты он становится пустым, и поэтому передача его в max() привела к ошибке.

Чтобы исправить это, конвертируйте map object в list:

arr = list(map(int, input().split()))
print(min(arr))
print(max(arr))

Вывод:

2 3 4
2
4

Альтернативой является использование списка:

arr = [int(i) for i in input().split())
print(min(arr))
print(max(arr))
0 голосов
/ 10 июля 2020

если вы попробуете напечатать массив, вы увидите, что это не список, это место в памяти, подобное этому <map object at 0x7fd087897a34>, потому что сначала преобразуйте его в список

arr = list(map(int, input().split()))
print(max(arr))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...