if __name__ == '__main__':
n = int(input())
arr = map(int, input().split())
在上面的代码中,map 函数采用两个参数,我了解了第二个参数的作用,但我没有得到“int”参数。
if __name__ == '__main__':
n = int(input())
arr = map(int, input().split())
在上面的代码中,map 函数采用两个参数,我了解了第二个参数的作用,但我没有得到“int”参数。
因此,它将返回一个可迭代对象,它将 int() 函数应用于 from 的每个子字符串.split(),这意味着它将每个子字符串转换为 int。
例子:
arr = map(int, "12 34 56".split())
arr = list(arr) # to convert the iterable to a list
print(arr) # prints: [12, 34, 56]
# This is equivalent:
arr = [int("12"), int("34"), int("56")]
使用自定义函数而不是int()的其他示例:
def increment(x):
return x + 1
arr = map(increment, [1, 2, 3, 4, 5])
arr = list(arr)
print(arr) # prints: [2, 3, 4, 5, 6]
假设我输入5然后在第一个提示符处输入:
n = int(input())
将输入 "5" 输入整数5。所以我们从一个string到一个int
然后我们将得到另一个输入提示,因为我们在下一行再次输入了 input(): 这次我将输入123 324 541 123 134然后输入。
会将其.split()拆分为“123”、“324”、“541”、“123”、“134”,这是一个map字符串列表(以及 a )。然后我们将映射int到它们以给自己一个mapof ints 而不是字符串。int将字符串转换为整数。
签出代码时,在 REPL(读取执行打印、循环器)中尝试通常会有所帮助。在您的命令提示符中只需键入python或者python3如果您已安装或使用replt.it。输入a = "123" + "321"然后尝试 `a = int("123") + int("321")
用 list(map(int, input().split())) 包装它以获得 alist而不是 a map。