社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

15 个 必知的Python 内置函数

数据STUDIO • 3 周前 • 42 次点击  


如果你是 Python 爱好者,你可能听说过一些内置函数。

老实说,我真希望在我开始编码的时候,有人能把这份清单交给我。

1. 带有endsepprint()-- 自定义输出

当然,你每天都在使用 print()。但你探索过它的额外功能吗?

  • end:默认情况下,print() 会在每次调用后添加一个换行 (\n)。使用 end 可以改变这一点。
  • sep:如果你要打印多个项目,这决定了它们之间的分隔符(默认为空格)。

示例

print("Hello""World", sep=", ", end="!!!")
# Output: Hello, World!!!
  • 它非常适合创建更简洁的输出,而无需额外的字符串格式化。

2. divmod() -- 更聪明地除法

你曾分别计算过商和余数吗?

divmod()可以一步完成。

result = divmod(10, 3)
print(result) # 输出: (3, 1)

它可以节省时间,减少错误,让你的代码看起来更聪明。

它非常适合数学运算,尤其是算法。

3. any() 和 all() -- 简化逻辑

这两个函数将成为你最好的朋友。

  • any():如果至少有一个元素是 True,则返回 True
  • all():只有当所有元素都是 True 时才返回 True
print(any([0, 0, 1]))  # Output: True (because 1 is True)
print(all([1, 2, 3]))  # Output: True (because all are non-zero)

告别冗长的 if 条件或嵌套循环。这些程序优雅而简洁。

4.enumerate() -- 索引和值合二为一

你经常写这样的东西吗?

for i in range(len(my_list)):
    print(i, my_list[i])

有了 enumerate(),情况就简单多了:

for i, value in enumerate(["Python""Rocks""Always"]):
    print(i, value)
# Output:
# 0 Python
# 1 Rocks
# 2 Always

它能毫不费力地跟踪指数和价值。另外,它更符合 Pythonic。

5.zip() -- 很强的组合

如果你要将多个列表中的元素配对,可以使用 zip()

示例

names = ["Alice""Bob"]
scores = [95, 85]
combined = list(zip(names, scores))
print(combined)  # Output: [('Alice', 95), ('Bob', 85)]

它消除了手动配对逻辑。是处理数据集或循环的理想选择。

6. map() --轻松实现函数式编程

假设你想对列表中的每个元素应用一个函数。使用 map()代替循环。

示例

nums = [1, 2, 3]
squared = list(map(lambda x: x**2, nums))
print(squared)  # Output: [1, 4, 9]

它高效、简洁。尤其适用于数据转换。

7. filter() --只保留需要的内容

filter()就像是数据的筛子。它只保留满足条件的元素。

示例

nums = [1, 2, 3, 4]
evens = list(filter(lambda x: x % 2 == 0, nums))
print(evens)  # Output: [2, 4]

它简化了基于条件的过滤。与lambda 函数配合使用,就像变魔术一样。

8.sorted() vs .sort() --知道什么时候该用什么

在 Python 中排序很简单,但你知道 sorted().sort() 之间的区别吗?

  • sorted():创建一个新的排序列表,而不改变原来的列表。
  • .sort():就地对列表排序(修改原始列表)。
nums = [3, 1, 4]
print(sorted(nums))  # Output: [1, 3, 4]
print(nums)          # Output: [3, 1, 4]
nums.sort()
print(nums)          # Output: [1, 3, 4]

需要临时排序版本时使用 sorted(),永久更改时使用 .sort()

9. getattr()、setattr()、hasattr() 和 delattr() -- 对象向导

这四个函数让处理对象和属性变得轻而易举。

  • getattr():从对象中获取属性值。
  • setattr():设置或更新属性值。
  • hasattr():检查对象是否具有特定属性。
  • delattr():从对象中删除属性。

示例

class Person:
    name = "Alice"
person = Person()
print(getattr(person, "name"))  # Output: Alice
setattr(person, "age", 25)
print(person.age)  # Output: 25
print(hasattr(person, "name"))  # Output: True
delattr(person, "name")
print(hasattr(person, "name"))  # Output: False

在处理动态属性或未知对象时,这些函数非常方便。

10.type()-- 不仅用于类型检查

我们大多数人都使用 type() 来检查变量的类型。但你知道可以用它来动态创建类吗?

示例

MyClass = type("MyClass", (object,), {"x": 10})
obj = MyClass()
print(obj.x)  # Output: 10

它可以动态创建类,而无需显式编写。非常适合元编程。

11. globals()locals() -- 范围检查器

这些函数为你提供特定作用域中所有变量的快照。

  • globals():返回所有全局变量的字典。
  • locals():返回函数中局部变量的字典。

示例

x = 42
def test():
    y = 10
    print("Global:", globals())
    print("Local:", locals())
test()

它是调试和检查代码中变量状态的完美工具。

12. 数值转换器int()-- 数学变得简单

int() 函数不仅可以将字符串转换为整数,还支持基数转换。它还支持基数转换。

binary = "1010"
print(int(binary, 2))  # Output: 10 (binary to decimal)
hex_num = "A"
print(int(hex_num, 16))  # Output: 10 (hex to decimal)

它简化了二进制和十六进制等不同数字系统的操作。

13. 带有keymin()max()

min()max() 都可以接受一个 key 参数,以自定义查找最小或最大值的标准。

fruits = ["apple""banana""cherry"]
print(min(fruits, key=lambda x: len(x)))  # Output: apple
print(max(fruits, key=lambda x: len(x)))  # Output: banana

它让根据自定义规则查找特定值变得超级简单。

14.round()-- 精确度控制

round()函数不仅可以将数字四舍五入到最接近的整数。你还可以控制精度。

例如

print(round(3.14159, 2))  # Output: 3.14
print(round(123.456, -1))  # Output: 120

它可以处理各种四舍五入需求,无论是小数还是整数。

15. eval() -- 动态运行 Python 代码

有没有想过运行存储在字符串中的 Python 代码?eval()可以做到这一点。

code = "3 + 5"
print(eval(code))  # Output: 8

它非常适合快速计算或动态脚本。


🏴‍☠️宝藏级🏴‍☠️ 原创公众号『数据STUDIO』内容超级硬核。公众号以Python为核心语言,垂直于数据科学领域,包括可戳👉 PythonMySQL数据分析数据可视化 机器学习与数据挖掘爬虫 等,从入门到进阶!

长按👇关注- 数据STUDIO -设为星标,干货速递

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/177161
 
42 次点击