目录
- 第一章 动态咒语库:列表的七十二变
- 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}年内有效")
大魔导师心得 🧙
列表是手中的黏土——可塑万形
元组是定格的时光——守护永恒
当二者在代码中共舞时…
你便掌握了数据结构的真谛!
🔍 深度思考:
- 为什么用元组存储RGB颜色值比列表更合适?
- 嵌套列表的深拷贝与浅拷贝有什么区别?
- 如何用元组实现简单的哈希验证?
💡 魔法实验:
创建一个坐标变换系统:
- 使用元组保存原始坐标 (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种组合咒文!