1.1 常用内置函数列表
我们已经了解了很多内置函数,但我想再介绍几个对你近期有帮助的:
id()
hash()
dir()
下面是它们的详细介绍:
函数 id()
id()
函数返回对象的唯一 标识符(数字)。这个标识符是一个整数,并且在对象的生命周期内保持唯一。通常标识符对应对象的内存地址,虽然Python的规范中没有保证这一点。
可以用这个唯一标识符来更好地理解许多操作,比如为了更好地了解对象在哪里被复制,或者我们有相同对象的引用。同样的对象会有不同的标识符,但对同一对象的引用会显示相同的标识符。
可以在调试程序和理解Python如何管理内存中的对象时使用。
a = [1, 2, 3]
b = a
print(id(a)) # 输出对象 'a' 的标识符
print(id(b)) # 输出相同的标识符,因为 'b' 引用了同一对象
函数 hash()
hash()
函数返回指定对象的哈希值(数字),如果它是可哈希的。Python中的可哈希对象必须是不可变的,并在其生命周期内具有恒定的哈希值。
这样的对象例如数字、字符串和元组(如果元组的所有元素也可哈希)。哈希值用于字典和集合中进行快速查找。用于优化数据查找和存储,进行快速相等性和唯一性检查。
print(hash("hello")) # 返回字符串 "hello" 的哈希值
print(hash(42)) # 返回数字 42 的哈希值
print(hash((1, 2, 3))) # 返回元组 (1, 2, 3) 的哈希值
重要!
不可变对象的哈希值在其生命周期内保持恒定。然而,可变对象如列表和字典是不可哈希的,不能作为字典的键或集合的元素。
函数 dir()
dir()
函数返回对象的属性和方法列表。如果未指定对象,dir()
返回当前局部作用域中的名称列表。这个函数对探索对象的结构及其属性非常有用。
用于获取对象的所有属性和方法的列表,有助于更好地理解其结构和可用的功能。特别是在文档有限或不可用时经常用于调试和探索对象。
class MyClass:
def __init__(self):
self.name = "Alice"
def greet(self):
print("Hello, " + self.name)
obj = MyClass()
print(dir(obj)) # 输出对象 'obj' 的属性和方法列表
print(dir()) # 输出当前局部作用域中的名称列表
1.2 操作集合
还有一些用于操作集合的有用函数。可能在早期的讲座中提到过它们,但现在我想详细谈一下。
zip()
min()
max()
sum()
count()
函数 zip()
zip()
函数将多个可迭代对象(例如列表、元组、字符串)组合成一个迭代器,返回元组的迭代器。每个元组包含从所有可迭代对象中相同索引位置收集的元素。
经常用于合并多个可迭代对象的数据,方便同时迭代。也可用于从两个列表中创建字典,一个用作键,另一个用作值。
names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]
combined = zip(names, ages)
print(list(combined)) # 输出: [('Alice', 25), ('Bob', 30), ('Charlie', 35)]
函数 max()
max()
函数返回传入的可迭代对象或多个参数中最大的元素。还可以指定关键函数以定义比较规则。
numbers = [1, 2, 3, 4, 5]
print(max(numbers)) # 输出: 5
# 使用关键函数
words = ["apple", "banana", "cherry"]
print(max(words, key=len)) # 输出: 'banana'
函数 min()
min()
函数返回传入的可迭代对象或多个参数中最小的元素。还可以指定关键函数以定义比较规则。
numbers = [1, 2, 3, 4, 5]
print(min(numbers)) # 输出: 1
# 使用关键函数
words = ["apple", "banana", "cherry"]
print(min(words, key=len)) # 输出: 'apple'
函数 count()
count()
函数用于计算元素在可迭代对象(如列表或字符串)中出现的次数。在列表、集合或迭代器上调用。
numbers = [1, 2, 2, 3, 4, 2, 5]
print(numbers.count(2)) # 输出: 3
text = "hello world"
print(text.count("o")) # 输出: 2
函数 sum()
sum()
函数返回可迭代对象中所有元素的和。可以选择指定一个初始值,该值会被加到总和中。
numbers = [1, 2, 3, 4, 5]
print(sum(numbers)) # 输出: 15
# 使用初始值
print(sum(numbers, 10)) # 输出: 25
1.3 执行代码
还有两个函数,作为初学者可能对你有用:
eval()
exec()
它们功能强大,但由于潜在的安全风险,需要谨慎使用。以下是关于每个函数的详细信息:
函数 eval()
eval(expression)
函数接受一个字符串并将其作为Python表达式执行。它返回该表达式的执行结果。用于将字符串表达式计算为Python代码。
示例:
x = 10
result = eval("x + 5")
print(result) # 输出: 15
函数 exec()
exec()
函数接受一个字符串并将其作为Python代码执行。与仅能执行表达式的 eval()
不同,exec()
可以执行任何Python语句,包括函数定义、循环和模块导入。此函数不返回值。
用于执行动态脚本和在程序运行时定义新函数或类。
code = """
def greet(name):
print(f"Hello, {name}!")
greet("Alice")
"""
exec(code)
# 输出: Hello, Alice!
重要!
和 eval()
一样,exec()
在处理不信任的输入数据时可能会很危险。请小心,避免在生产环境中使用 exec()
执行代码。
GO TO FULL VERSION