Quark 的大纲:Python 内置方法
Source: Dev.to
概览
Python 提供了像 len() 和 type() 这样的内置函数。
内置方法 与之类似,但它们附属于内置对象。
例如,和其写 append(list, x) 不同,你可以调用 list.append(x)。
内置方法是用 C 实现的,位于 list、dict、str 等核心类型内部。
当你调用方法时,Python 会自动把对象本身作为第一个参数传递给底层的 C 函数。
x = [1, 2]
x.append(3)
print(x)
# prints: [1, 2, 3]
append() 方法是 list 类型的一部分,会就地修改列表。
同样,字符串方法作用于字符串实例:
word = "hello"
print(word.upper())
# prints: HELLO
这里的 upper() 是字符串对象的方法,而不是独立函数。
Python 的内置方法来源何处?
内置方法的引入是为了让核心对象类型更实用。早期的 Python 主要依赖普通函数来完成大多数操作。随着语言的发展,list、dict、str 等类型获得了自己的方法,提供了更自然的面向对象接口。
| Year | Milestone |
|---|---|
| 1990 | 像 len(x)、type(x) 这样的函数被用于大多数任务。 |
| 1991 | Python 0.9.1 添加了带有关联方法的内置类型(list、dict、str)。 |
| 1995 | Python 1.3 扩展了字符串方法(find、replace、split)。 |
| 2001 | Python 2.2 为所有内置类型引入了新式类,开启了完整的方法支持。 |
| 2008 | Python 3.0 在一致的对象模型下统一了方法体系。 |
| 2025 | 现代 Python 在 set、bytes、memoryview 等类型上提供了数十种方法。 |
正确使用 Python 内置方法
向列表添加元素
问题: 需要在原地向列表添加新元素。
解决方案: 使用 list.append() 方法。
fruits = ['apple', 'banana']
fruits.append('cherry')
print(fruits)
# prints: ['apple', 'banana', 'cherry']
append() 直接修改列表,避免创建新列表。
更新字典
问题: 想要安全地为键设置或更改值,并优雅地处理缺失的键。
解决方案: 使用 dict.update() 方法。
scores = {'Alice': 3}
scores.update({'Bob': 5})
print(scores)
# prints: {'Alice': 3, 'Bob': 5}
update() 在键不存在时会添加键,若键已存在则更新其值。
去除字符串两端的空白
问题: 需要删除用户输入的前导和尾随空格。
解决方案: 使用 str.strip() 方法。
name = " Mike "
print(name.strip())
# prints: Mike
strip() 只移除外部空白,内部空格保持不变。
在保持顺序的前提下去除列表中的重复项
问题: 想要消除列表中的重复元素,同时保留每个元素的第一次出现。
解决方案: 将 dict.fromkeys() 与 list() 结合使用。
nums = [1, 2, 2, 3, 1]
unique = list(dict.fromkeys(nums))
print(unique)
# prints: [1, 2, 3]
dict.fromkeys() 会保留首次出现的顺序;再转换回列表即可得到去重后的结果。
在字符串中查找子串
问题: 需要定位字符(或子串)在字符串中第一次出现的位置,或判断其是否不存在。
解决方案: 使用 str.find() 方法。
text = "banana"
print(text.find("n"))
# prints: 2
find() 返回第一次匹配的索引,如果未找到子串则返回 -1。