Py学习  »  Python

15 个 必知的Python 内置函数

数据STUDIO • 7 月前 • 211 次点击  


如果你是 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
 
211 次点击