python 内置函数-range()+zip()+sorted()+map()+reduce()+filter()

  • Post category:Python

下面是对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()的完整攻略。