Python 容器案例
下面这段代码可以直接复制到 .py 文件中运行,覆盖 list、tuple、dict、set、str 的常见操作,以及浅拷贝和深拷贝区别。
import copy
from functools import reduce
def list_case():
students = ["Tom", "Lucy", "Jack"]
students.append("Lily")
students.insert(1, "Bob")
print("list add:", students)
removed = students.pop()
students.remove("Bob")
print("list remove:", removed, students)
scores = [80, 95, 72, 88]
print("list sorted copy:", sorted(scores))
scores.sort(reverse=True)
print("list in-place sort:", scores)
print("list comprehension:", [score for score in scores if score >= 80])
def tuple_case():
user = ("Tom", 20, "Beijing")
name, age, city = user
print("tuple unpack:", name, age, city)
print("tuple count:", (1, 2, 2, 3).count(2))
def dict_case():
profile = {"name": "Tom", "age": 20}
profile["city"] = "Beijing"
profile.update({"score": 95})
print("dict:", profile)
print("dict get:", profile.get("name"), profile.get("missing", "default"))
for key, value in profile.items():
print("dict item:", key, value)
defaults = {"role": "student", "score": 0}
print("dict merge:", defaults | profile)
def set_case():
a = {1, 2, 3}
b = {3, 4, 5}
print("set union:", a | b)
print("set intersection:", a & b)
print("set difference:", a - b)
print("set comprehension:", {x * x for x in range(10) if x % 2 == 0})
def str_case():
text = " Python,Java,Go "
cleaned = text.strip()
print("str cleaned:", cleaned)
print("str split:", cleaned.split(","))
print("str join:", " | ".join(cleaned.split(",")))
print("str f-string:", f"{'Tom'} score={95.678:.2f}")
def common_case():
numbers = [3, 1, 4, 1, 5]
print("len/max/min/sum:", len(numbers), max(numbers), min(numbers), sum(numbers))
print("sorted/reversed:", sorted(numbers), list(reversed(numbers)))
print("map:", list(map(lambda x: x * 2, numbers)))
print("filter:", list(filter(lambda x: x % 2 == 1, numbers)))
print("reduce:", reduce(lambda a, b: a + b, numbers))
def copy_case():
students = [["Tom", 80], ["Lucy", 95]]
shallow = students.copy()
shallow[0][1] = 100
print("after shallow copy:", students)
students = [["Tom", 80], ["Lucy", 95]]
deep = copy.deepcopy(students)
deep[0][1] = 100
print("after deep copy:", students)
print("deep copy:", deep)
def main():
list_case()
tuple_case()
dict_case()
set_case()
str_case()
common_case()
copy_case()
if __name__ == "__main__":
main()