目录

  • 第一章 动态咒语库:列表的七十二变
  • 1.1 列表的「创世纪」
  • 1.2 列表的「生命轮回」(CRUD)
  • 1.3 切片魔法:时间的掌控术
  • 1.4 推导式:炼金术的终极奥义
  • 第二章 不朽的符文碑:元组的秘密
  • 2.1 元组的「永恒封印」
  • 2.2 元组拆包术
  • 2.3 元组的生存智慧
  • 第三章 魔法实践:元素召唤系统
  • 3.1 魔灵召唤列表
  • 3.2 元组封印系统

第一章 动态咒语库:列表的七十二变

1.1 列表的「创世纪」

# 魔法卷轴的三种书写方式
spell_book = []                     # 空卷轴
elements = ["水", "火", "风", "土"]  # 元素列表
matrix = [[1,2], [3,4]]            # 嵌套卷轴(二维数组)# 从咒语中召唤列表
spells = list("火球术")  # → ['火', '球', '术']

1.2 列表的「生命轮回」(CRUD)

# 增补新咒语
spells.append("🔥")      # 末尾追加
spells.insert(1, "炎")   # 在索引1插入
spells.extend(["落","陨"]) # 扩展咒语# 删除危险咒语
del spells[3]           # 永久抹除
spells.remove("火")      # 精确消除
popped = spells.pop(1)  # 弹出'炎'# 修改与查询
spells[0] = "冰"        # 冻结第一个元素
print(spells.index("球")) # 定位咒语位置

1.3 切片魔法:时间的掌控术

# 基础切片
chapters = ["序","金","木","水","火","终章"]
print(chapters[1:4])   # ['金','木','水']# 高阶切片技巧
print(chapters[::2])   # 每隔一步取 → ['序','木','终章'] 
print(chapters[::-1])  # 时间倒流 → 逆序列表# 切片替换咒术
chapters[2:4] = ["森林","海洋"]  # 木水→森林海洋

1.4 推导式:炼金术的终极奥义

# 传统炼金术
squares = []
for x in range(5):squares.append(x**2)# 现代魔法推导式
cubes = [x**3 for x in range(5) if x%2==0]  # [0,8,64]# 多重循环咒语
pairs = [(i,j) for i in range(3) for j in range(3)]
# → [(0,0),(0,1),...,(2,2)]

第二章 不朽的符文碑:元组的秘密

2.1 元组的「永恒封印」

# 三种刻录方式
empty_t = ()              
color = (255, 215, 0)     # RGB黄金色
point = 1920, 1080       # 坐标元组(自动打包)# 无法修改的验证
try:color[0] = 200       # TypeError触发
except TypeError:print("符文碑不可篡改!")

2.2 元组拆包术

# 坐标转换演示
x, y = (108, 203)  # 解包赋值
print(f"魔法阵中心:({x}, {y})")# 星号收集余数
first, *middle, last = (1,2,3,4,5)
print(middle)      # [2,3,4](自动转列表)# 函数返回多值
def get_size():return 800, 600width, height = get_size()

2.3 元组的生存智慧

# 比列表更快的遍历(实测快15-20%)
coordinates = tuple((x,y) for x in range(1000) for y in range(1000))# 字典键的完美候选
magic_constants = {(255,0,0): "火焰",(0,0,255): "寒冰"
}# 函数参数的最佳拍档
def set_resolution(width, height):print(f"设置分辨率:{width}x{height}")set_resolution(*(1920, 1080))  # 星号解包参数

第三章 魔法实践:元素召唤系统

3.1 魔灵召唤列表

# 构建召唤阵列
spirits = ["水精灵", "火鸟", "岩石巨人"]# 批量强化术(列表推导式应用)
enhanced = [f"★{s}" for s in spirits if "精" in s]
# → ['★水精灵']# 环形召唤阵(切片妙用)
ritual_order = (spirits * 2)[::2]  # 间隔召唤

3.2 元组封印系统

# 安全存储召唤契约
CONTRACT = ("缔约者:{name}","有效期:2023-2030","禁止召唤暗影生物"
)# 契约拆包读取
header, duration, clause = CONTRACT
print(f"{duration}年内有效")

大魔导师心得 🧙
列表是手中的黏土——可塑万形
元组是定格的时光——守护永恒
当二者在代码中共舞时…
你便掌握了数据结构的真谛!

🔍 深度思考

  1. 为什么用元组存储RGB颜色值比列表更合适?
  2. 嵌套列表的深拷贝与浅拷贝有什么区别?
  3. 如何用元组实现简单的哈希验证?

💡 魔法实验
创建一个坐标变换系统:

  • 使用元组保存原始坐标 (x,y,z)
  • 用列表推导生成镜像坐标 [(-x,y,z)…]
  • 实现缩放、平移等变换函数
# 彩蛋代码:动态咒文生成器
words = ["天","地","玄","黄"]
combos = [f"{w1}{w2}{w3}" for w1 in words for w2 in words for w3 in words if w1 != w2 != w3]
# 生成64种组合咒文!