跳到主要内容

高频内置函数速查

这页只保留“高频且值得记住”的内置函数。一个常见误区是把它们和字符串方法、列表方法、math 模块函数混在一起,所以先把边界讲清楚:

  • 内置函数:直接写 len(x)sorted(x)sum(x)
  • 对象方法:写成 text.split()items.append(x)
  • 标准库函数:写成 math.sqrt(x)json.loads(text)

类型转换

int("12")
float("3.14")
str(123)
list((1, 2, 3))
tuple([1, 2, 3])
set([1, 2, 2, 3])
dict([("a", 1), ("b", 2)])

数值与统计

abs(-10)
round(3.14159, 2)
pow(2, 5)
sum([1, 2, 3])
max([1, 2, 3])
min([1, 2, 3])
divmod(10, 3)

迭代与聚合

len([1, 2, 3])
sorted([3, 1, 2])
reversed([1, 2, 3])
enumerate(["a", "b", "c"])
zip([1, 2], ["a", "b"])
any([False, False, True])
all([True, True, True])

映射与过滤

list(map(str, [1, 2, 3]))
list(filter(lambda x: x % 2 == 0, [1, 2, 3, 4]))

如果逻辑不复杂,我更常用推导式而不是 map() / filter()

调试和表示

type("hello")
isinstance(3, int)
id("hello")
print("debug")
repr("hello")

容易混的几组函数

sorted()list.sort()

numbers = [3, 1, 2]

new_numbers = sorted(numbers) # 返回新列表
numbers.sort() # 原地排序

sum() 和字符串拼接

sum() 适合数值,不适合字符串拼接。字符串拼接优先 join()

map() 返回的不是列表

在 Python 3 里,map() 返回的是迭代器,通常需要再套一层 list(),或者直接解包使用。

我最常用的一小组

如果只挑一批最常回看的,我会选:

  • len
  • sorted
  • sum
  • max
  • min
  • enumerate
  • zip
  • any
  • all
  • isinstance

关联阅读