本文将介绍Python中两个常用的函数:range()和map(),对于初学者来说这两个函数是必学的,在Python的应用中非常广泛。本文将分别从函数的定义、常见用法和注意事项等不同方面进行阐述。
一、range()
range()函数是Python中非常常用的内置函数,用于生成一个包含 arithmetic progression(等差数列)的序列。
range(stop)
range(start, stop[, step])
其中,range()最基本的用法是将一些数字包括在内:
>>> print(range(5))
[0, 1, 2, 3, 4]
可以看到,当我们使用range(5)时,它返回的是从0开始到4结束的数字序列,停止值是必需的,而步长默认是1。
也可以将它用在循环的控制结构中:
>>> for i in range(5):
print(i)
0
1
2
3
4
除了直接用range(),还可以使用它的三个参数控制序列的生成:起点、终点和步长。例如,指定起点、终点及间隔的代码如下所示:
>>> print(range(1, 10, 2))
[1, 3, 5, 7, 9]
可以看到,这个序列生成的起点是1,终点是10(实际上不包含10),每个间隔是2。
注意事项
- range()生成的序列是以0为起始的。
- 起点是可选的,而且默认值是0。
- 步长也是可选的,而且默认是1。
- 下标取值须要在序列长度内。
二、map()
map()是Python内置的高阶函数之一,它的作用是讲一个函数作用到一个序列中所有的元素上,并返回一个结果序列。其基本形式如下:
map(function, sequence)
其中,function
是接受一个参数的函数;sequence
可以是任何序列类型。
map将function
依次作用于sequence
中每一个元素,将结果作为一个列表返回。示例如下:
>>> def square(x):
return x ** 2
>>> print(map(square, [1, 2, 3, 4, 5]))
[1, 4, 9, 16, 25]
由此可以看出,map()函数将sequence
中的每个元素都平方了。
此外,也可以传入多个序列,这时function
依次取每个序列中相同位置的元素进行处理:
>>> print(map(lambda x, y: x * y, [1, 2, 3, 4, 5], [6, 7, 8, 9, 10]))
[6, 14, 24, 36, 50]
上面的例子中lambda函数作用于两个列表中同一位置上的值,将它们相乘,返回一个新的序列。
注意事项
- map()函数返回结果的长度与入参中最短的序列一致。
- 如果有多个序列作为参数,函数必需接收相同数量的参数,
- 可以使用lambda函数直接传入逻辑实现。
三、总结
本文介绍了Python两个常用的内置函数:range()和map()。range()函数用于生成一个包含等差数列的序列,常用于循环的控制结构中。map()函数将一个函数作用于序列中所有的元素上,并返回结果序列,可以有多个序列作为参数,返回结果的长度与入参中最短的序列一致。