今日题目
题目描述
输入多个整数(一行),输出其中最大的整数
输入格式
一行多个整数,用空格隔开
输出格式
一个整数
解题思路
将这些整数放到列表中,用max函数求取最大值,是不是感觉so easy,坑来啦!
按这个构思写代码
a=input().split()
b=list(a)
print(max(b))
进行输出,输入1 2 3 4 5 6,完美,没有问题,接着输入-10 -3 0 0 12 3,得到3明显不对
再看变量,列表确实是对的,列表里的值也是对的,找半天就是找不到问题
就看题解,发现解法里出现map函数,闻所未闻哈哈,学习一哈
map函数
map(function, iterable)
其中function:一个函数或方法 iterable:一个或多个序列(可迭代对象)
map() 函数的作用是:对序列 iterable 中每一个元素调用 function 函数,返回一个map对象实例。这个map对象本质上来讲是一个迭代器。
用法1
可迭代对象传递给map()函数,然后map()函数将这个可迭代对象传入自定义函数。
def function(x):
return x+2
iterable=[12,23,34]
gu=map(function,iterable)
print(list(gu))
用法2
可迭代对象传递给map()函数,然后map()函数将这个可迭代对象进行数据类型转换。
a=[1,2,3,4,5]
ls=[]
b=map(float,a)
print(list(b))
用法3
多个可迭代对象传递给map()函数,传入自定义函数
def function(x,y):#注意有两个变量输入,要有两个参数
return x+y
iterable=[12,23,34]
iterable_2=[13,14,45]
gu=map(function,iterable,iterable_2)
print(list(gu))
用法4
可迭代对象传送给map()函数,,然后map()函数将这个可迭代对象传入多个自定义函数
# 函数1
def add(x):
return x + x
# 函数2
def square(x):
return x * x
# 数据
nums = [1, 2, 3, 4, 5]
# 逐个取数处理
for i in nums:
# lambda为处理函数,分别将add和square传给lambda
vals = list(map(lambda x: x(i),(add, square)))
print(vals)
解题方法1
a=input().split()
ls=[]
for i in a:
ls.append(i)
print(max(map(int,ls)))
解题方法2
a=input().split()
b=list(a)
print(max(map(int,b)))
用法4有点读不懂,求解,谢谢