Python提供了很多强大的内置函数,能够帮我们节省时间、简化代码并提升程序性能。很多初学者并不知道这些函数的存在,经常自己重复实现Python已经提供的功能。
下面是我在编程过程中发现的12个最有用的Python内置函数,希望早点知道它们就好了。
遍历列表时,不再需要手动维护计数器变量来获取索引:
cities = ['巴黎', '东京', '开罗', '悉尼']
for 序号, 城市 in enumerate(cities, start=1):
    print(序号, 城市)输出结果:
1 巴黎
2 东京
3 开罗
4 悉尼这样就不需要自己定义索引变量了,代码更加清晰。
需要同时处理多个列表时,zip()非常有用:
书籍 = ['1984', '沙丘', '哈姆雷特']
作者 = ['乔治·奥威尔', '弗兰克·赫伯特', '威廉·莎士比亚']
for 书, 作者名 in zip(书籍, 作者):
    print(f"《{书}》的作者是{作者名}")输出结果:
《1984》的作者是乔治·奥威尔
《沙丘》的作者是弗兰克·赫伯特
《哈姆雷特》的作者是威廉·莎士比亚any()在可迭代对象中至少有一个True时返回True,all()需要所有元素都为True才返回True:
词语列表 = ["你好", "世界", ""]
print(any(词语列表))  # True(至少有一个非空字符串)
print(all(词语列表))  # False(因为有空字符串)这比写循环来检查条件要简洁得多。
不需要写复杂的排序逻辑,sorted()可以轻松实现各种排序需求:
商品列表 = [('笔记本电脑', 1200), ('手机', 800), ('平板', 600)]
按价格排序 = sorted(商品列表, key=lambda x: x[1])
print(按价格排序)输出结果:
[('平板', 600), ('手机', 800), ('笔记本电脑', 1200)]key参数让你可以指定按哪个字段排序。
不需要用for循环来转换每个元素,map()可以一次性处理所有元素:
数字列表 = [1, 2, 3, 4, 5, 6]
偶数加倍 = list(map(lambda x: x * 2 if x % 2 == 0 else x, 数字列表))
print(偶数加倍)输出结果:
[1, 4, 3, 8, 5, 12]如果条件比较复杂,也可以用列表推导式:
数字列表 = [1, 2, 3, 4, 5, 6]
奇数立方 = [x ** 3 for x in 数字列表 if x % 2 != 0]
print(奇数立方)  # 输出:[1, 27, 125]filter()可以快速筛选出符合条件的元素:
单词列表 = ["apple", "banana", "orange", "grape", "umbrella"]
元音开头 = list(filter(lambda w: w[0].lower() in "aeiou", 单词列表))
print(元音开头)输出结果:
['apple', 'orange', 'umbrella']reduce()函数(需要从functools导入)可以进行累积操作,比如找最大值、求和等:
from functools import reduce
编程语言 = ["python", "java", "javascript", "c"]
最长单词 = reduce(lambda a, b: a if len(a) > len(b) else b, 编程语言)
print(最长单词)输出结果:
javascript虽然sum()函数在求和时更直观,但reduce()在自定义累积操作时更强大。
不需要先用if检查键是否存在,setdefault()可以自动初始化不存在的键:
库存 = {'苹果': 10}
香蕉数量 = 库存.setdefault('香蕉', 5)  # 如果香蕉不存在就添加
print(库存)输出结果:
{'苹果': 10, '香蕉': 5}vars()返回对象的__dict__属性,方便查看对象的所有属性:
class 汽车:
    def __init__(self, 品牌, 年份):
        self.品牌 = 品牌
        self.年份 = 年份
我的车 = 汽车('丰田', 2020)
print(vars(我的车))输出结果:
{'品牌': '丰田', '年份': 2020}想了解当前作用域有哪些变量时,这两个函数很有用:
全局变量 = 5
def 测试函数():
    局部变量 = 15
    print("函数内的局部变量:", locals())
    print("函数内的全局变量:", list(globals().keys())[:5])  # 显示前5个
测试函数()与使用type()相比,isinstance()进行类型检查更加灵活:
数据1 = "你好"
数据2 = [1, 2, 3]
print(isinstance(数据1, str))              # True
print(isinstance(数据2, (list, tuple)))    # True(数据2是列表)
print(isinstance(数据1, (list, tuple)))    # False想知道一个对象能否像函数一样被调用?用callable():
class 倍数器:
    def __init__(self, 倍数):
        self.倍数 = 倍数
        
    def __call__(self, 数字):
        return 数字 * self.倍数
加倍 = 倍数器(2)
print(callable(加倍))     # True,因为有__call__方法
print(callable("字符串")) # False,字符串不可调用当处理动态创建的对象时,这个函数特别有用。
开始使用这些内置函数后,你会发现代码变得:
更简洁:用一行代码代替多行循环
更易读:函数名直接表达了代码的意图
更高效:内置函数通常比手写代码运行更快
建议先从enumerate()、zip()、sorted()这几个最常用的函数开始,逐步在其他代码中尝试使用这些内置函数。你会发现Python编程变得更有趣,代码质量也明显提升。
记住,好的程序员不是知道所有答案,而是知道在哪里找到答案。这些内置函数就是Python为你准备好的高效工具。
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!
JavaScript 是 Web 开发领域里非常重要的技术之一,并且是每个开发者都必须掌握的技能。而我作为一个开始使用 Python 编程的人
Python 是机器学习最广泛采用的编程语言,它最重要的优势在于编程的易用性。如果读者对基本的 Python 语法已经有一些了解,那么这篇文章可能会给你一些启发。作者简单概览了 30 段代码,它们都是平常非常实用的技巧
Python是一种通用的高级编程语言。用它可以做许多事,比如开发桌面 GUI 应用程序、网站和 Web 应用程序等。作为一种高级编程语言,Python 还可以让你通过处理常见的编程任务来专注应用程序的核心功能。
Python在3.4引入了 asyncio 库,3.6新增了关键字 async 和 await ,此后,异步框架迅速发展了起来,性能上能和Node.js比肩,除非是CPU密集型任务,否则没有理由不适用异步框架
Python 是一门对初学者友好的编程语言,是一种多用途的、解释性的和面向对象的高级语言。它拥有非常小的程序集,非常易于学习、阅读和维护。其解释器可在Windows、Linux 和 Mac OS 等多种操作系统上使用
在 Python 中,函数是「头等公民」(first-class)。也就是说,函数与其他数据类型(如 int)处于平等地位。因而,我们可以将函数赋值给变量,也可以将其作为参数传入其他函数
Python 字典通过检查键值是否相等和比较哈希值来确定两个键是否相同.具有相同值的不可变对象在Python中始终具有相同的哈希值.注意: 具有不同值的对象也可能具有相同的哈希值(哈希冲突)
而且上面这种方法只有第一次 get_instance() 的时候能给对象传递参数,总之有许多弊端。Python 提供了 __new__ 方法正好完美解决了这个问题,再加上锁,就能实现一个线程安全的单例模式:
 web开发框架存在的意义就在于可以快速便捷的构建应用,而不用去在意那些没必要的技术细节,到2020年为止,基于Python创建的的web应用已经非常多了,国外知名的有youtube.com、instagram、reditt、国内有知乎、豆瓣等等
每种语言都有自己的优势,互相结合起来各取所长程序执行起来效率更高或者说哪种实现方式较简单就用哪个,nodejs是利用子进程来调用系统命令或者文件,NodeJS子进程提供了与系统交互的重要接口,其主要API有: 标准输入
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!