编程学习网 > 编程语言 > Python > 一招致胜!Python内置函数让你代码效率翻倍!
2024
08-02

一招致胜!Python内置函数让你代码效率翻倍!


今天我们来聊聊 Python 中那些强大而富有表达力的内置函数。这些函数可以极大地提升我们的编程效率,并且使代码更加简洁易读。无论你是编程新手还是资深开发者,我相信你都会从中学到一些新技巧。

map:函数式编程的利剑
map() 函数是 Python 中实现函数式编程的重要工具之一。
它接收一个函数和一个可迭代对象,将函数应用于可迭代对象的每个元素,并返回一个新的迭代器。
示例:将列表中的所有数字转换为字符串
l = list(map(str, [1, 2, 3, 4]))
print(l)  # ['1', '2', '3', '4']
reduce:序列的累积计算
reduce() 函数来自functools模块,它将一个函数累积地作用在序列的元素上,返回一个单一的结果。
自定义字符串转整数方法
from functools import reduce
DIGITS = {'0': 0, '1': 1, '2': 2, ..., '9': 9}
def str2int(s):
    def fn(x, y): return x * 10 + y
    def char2num(s): return DIGITS[s]
    return reduce(fn, map(char2num, s))
print(str2int('139'))  # 139
filter:序列的过滤利器
filter() 函数用于过滤序列,根据提供的函数返回值来决定元素是否保留。
示例:过滤掉序列中的空字符串和 None
def not_empty(s):
    return s and s.strip()
l = list(filter(not_empty, ['A', '', 'B', None, 'C', '  ']))
print(l)  # ['A', 'B', 'C']
sorted:序列排序的魔法
sorted() 函数可以对列表进行排序,也可以通过key参数来指定自定义的排序逻辑。
示例:对列表进行排序和基于绝对值的排序
l = sorted([36, 5, -12, 9, -21])
print(l)  # [-21, -12, 5, 9, 36]
l1 = sorted([36, 5, -12, 9, -21], key=abs)
print(l1)  # [5, 9, -12, -21, 36]
zip:序列的配对大师
zip() 函数可以将多个可迭代对象中的元素配对,形成一个新的迭代器。
示例:将两个列表中的元素配对
l1 = [1, 2, 3, 88]
l2 = [4, 5, 6]
r1 = list(zip(l1, l2))
print(r1)  # [(1, 4), (2, 5), (3, 6)]
copy与deepcopy:对象复制的双璧
copy 和 deepcopy 函数分别用于创建对象的浅拷贝和深拷贝。
示例:浅拷贝与深拷贝的区别
import copy
a = [1,2,3,[5,6,7]]
b = a
# id为硬盘空间索引
print(id(a) == id(b)) # True
# 浅复制
c = copy.copy(a)
print(id(a) == id(c)) # False,说明 a和c不是同样的东西
d = copy.copy(a)
print(id(a[1]) == id(d[1])) # True,说明子对象是相同的东西
a[1] = 555
print(a,d) # a => [1, 555, 3, [5, 6, 7]], b => [1, 2, 3, [5, 6, 7]]
a[3][1] = 666
print(a,d) # a => [1, 555, 3, [5, 666, 7]], b => [1, 2, 3, [5, 666, 7]]
# 深复制
import copy
a = [1,2,3,[5,6,7]]
b = copy.deepcopy(a)
print(id(a)==id(b)) # False 完全是不一样的东西
总结

通过今天的学习,我们了解了Python中的几个强大内置函数:map()、reduce()、filter()、sorted()和zip(),以及copy()和deepcopy()的用法。这些函数不仅能够提升我们的编程效率,还能帮助我们编写出更加简洁、易读的代码。

以上就是一招致胜!Python内置函数让你代码效率翻倍!的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取