Skip to main content

常用内置与标准库

常用内置

len([1, 2, 3]) # 3
sum([1, 2, 3]) # 6
min(1, 2, 3) # 1
max(1, 2, 3) # 3
sorted([3, 1, 2]) # [1, 2, 3]
list(enumerate(["a", "b"])) # [(0, 'a'), (1, 'b')]
list(zip([1, 2], ["a", "b"])) # [(1, 'a'), (2, 'b')]
any([False, True]) # True
all([True, True]) # True
isinstance(1, int) # True

pathlib

from pathlib import Path

p = Path("data") / "a.txt"
p.parent.mkdir(parents=True, exist_ok=True)
p.write_text("hi", encoding="utf-8")
print(p.read_text(encoding="utf-8"))
print(p.exists())

json

import json

obj = {"name": "alice", "ok": True}
s = json.dumps(obj, ensure_ascii=False)
back = json.loads(s)

datetime

from datetime import datetime, timedelta

now = datetime.now()
tomorrow = now + timedelta(days=1)
print(now.strftime("%Y-%m-%d %H:%M:%S"))

collections

from collections import Counter, defaultdict

Counter("abca") # Counter({'a': 2, 'b': 1, 'c': 1})
d = defaultdict(int)
d["x"] += 1 # 缺省 0

要点

  1. 先查标准库,再引入第三方
  2. 路径优先 pathlib
  3. Counter / defaultdict 能显著简化计数与分组