下面是对Python内置函数range()、zip()、sorted()、map()、reduce()和filter()的攻略。
range(start, stop[, step])
range() 函数用来生成一个整数序列,常用于for循环中,语法如下:
range(stop)
range(start, stop[, step])
它有三个参数,其中start是可选的,默认值为0;stop是必须的,表示序列的结束值(不包含);step也是可选的,默认值为1。
示例1:遍历序列
for i in range(5):
print(i)
输出:0 1 2 3 4
示例2:指定起始值和步长
for i in range(0, 10, 2):
print(i)
输出:0 2 4 6 8
zip(*iterables)
zip() 函数用于将可迭代对象中对应的元素打包成一个元组,然后返回这些元组组成的迭代器,最短的可迭代对象到达结尾时停止。语法如下:
zip(*iterables)
它接受一些可迭代对象作为参数,返回一个由元组组成的迭代器。
示例1:合并两个列表
a = [1, 2, 3]
b = ['a', 'b', 'c']
c = zip(a, b)
print(list(c))
输出:[(1, ‘a’), (2, ‘b’), (3, ‘c’)]
示例2:合并两个字典
x = {'a': 1, 'b': 2}
y = {'c': 3, 'd': 4}
z = zip(x, y)
print(list(z))
输出:[(‘a’, ‘c’), (‘b’, ‘d’)]
sorted(iterable[, key][, reverse])
sorted() 函数用于对可迭代对象进行排序,并返回一个新的列表,排序后的结果是升序的。语法如下:
sorted(iterable, *, key=None, reverse=False)
它有三个参数,其中iterable是必须的,表示要排序的可迭代对象;key是可选的,表示排序规则函数;reverse也是可选的,表示是否按降序排序,默认值为False。
示例1:对列表进行排序
a = [3, 1, 4, 2]
b = sorted(a)
print(b)
输出:[1, 2, 3, 4]
示例2:对字典按值进行排序
x = {'a': 3, 'b': 1, 'c': 4, 'd': 2}
y = sorted(x.items(), key=lambda x: x[1])
print(y)
输出:[(‘b’, 1), (‘d’, 2), (‘a’, 3), (‘c’, 4)]
map(function, iterable, …)
map() 函数用于将一个函数应用到可迭代对象中的每个元素,并返回一个由结果组成的迭代器。语法如下:
map(function, iterable, ...)
它有两个必须的参数,其中function是一个函数或者可调用对象,表示要应用的函数;iterable是一个可迭代对象,表示要处理的数据。
示例1:对列表中的每个元素进行平方计算
a = [1, 2, 3, 4, 5]
b = map(lambda x: x * x, a)
print(list(b))
输出:[1, 4, 9, 16, 25]
示例2:将字符串列表转换为大写字母列表
a = ['apple', 'banana', 'orange']
b = map(str.upper, a)
print(list(b))
输出:[‘APPLE’, ‘BANANA’, ‘ORANGE’]
reduce(function, iterable[, initializer])
reduce() 函数用于将一个二元操作应用到可迭代对象中的元素上,得到一个最终的值。它需要一个二元函数,并且这个函数的前一个参数是上一次执行的结果,后一个参数是当前要处理的数据,返回值是下一次执行的结果。语法如下:
reduce(function, iterable[, initializer])
它有两个必选参数,其中function是二元函数,表示要应用的函数;iterable是一个可迭代对象,表示要处理的数据;initializer是可选的,表示初始值。
示例1:对列表中的元素求和
from functools import reduce
a = [1, 2, 3, 4, 5]
b = reduce(lambda x, y: x + y, a)
print(b)
输出:15
示例2:将字符串列表拼接成一个字符串
from functools import reduce
a = ['a', 'b', 'c', 'd']
b = reduce(lambda x, y: x + y, a)
print(b)
输出:’abcd’
filter(function, iterable)
filter() 函数用于将一个函数应用到可迭代对象中的每个元素,并返回一个由符合条件的元素组成的迭代器。语法如下:
filter(function, iterable)
它有两个参数,其中function是一个函数或者可调用对象,表示要应用的函数;iterable是一个可迭代对象,表示要处理的数据。
示例1:过滤列表中的偶数
a = [1, 2, 3, 4, 5]
b = filter(lambda x: x % 2 == 0, a)
print(list(b))
输出:[2, 4]
示例2:过滤字典中的值为偶数的项
x = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
y = filter(lambda x: x[1] % 2 == 0, x.items())
print(dict(y))
输出:{‘b’: 2, ‘d’: 4}
以上就是对Python内置函数range()、zip()、sorted()、map()、reduce()和filter()的完整攻略。