## AI 编写代码的时代,基础更为重要。 {#sec-1e8becde6653} 如今,AI 能在瞬间生成代码。只要说 “在 Python 中只取出字典的键”,AI 在一秒内给出代码。但我们为何仍需亲自学习这些看似简单的方法? 这不仅仅是记忆“语法”。编程的本质在于 **控制数据的流动与转换**。数据在 CPU 处理后展示到屏幕,或通过网络(HTTP)传输到远端时,都必须不断换装以适配不同的目标。 在 Python 中,最强大的“衣服”是 **Dictionary(字典)**,而将其根据情境转换为 **List(列表)** 的技巧,既不是普通的基础,而是打开数据之路的关键工具。掌握这一路径,才能在 AI 生成的代码出错时,能够自信地说 “这里的数据格式错了!” 并自行修正。 ![混乱的数据与开发者的相遇](/media/editor_temp/6/c8e4d249-e15b-4a34-bd7f-310b8c7a8588.png) --- ## 1. 为什么要把字典拆成列表? {#sec-d0c88e710c3f} 字典是由 **“键(Key):值(Value)”** 组成的聪明容器。但有时我们只需要容器的“标签(Key)”,有时又需要把内部的“内容(Value)”单独收集并排序。 例如,想把网站登录用户的 ID 按字母顺序展示?此时直接提取键并生成列表要比携带整个字典高效得多。 --- ## 2. 实战:字典拆解秀(核心方法) {#sec-9f6c6520f1bb} ### 🏷️ 只收集标签:`keys()` {#sec-0c378f391767} 从字典中提取“键”。这是最常用的转换。 ```python # 我的电脑部件库存 inventory = {'CPU': 5, 'GPU': 2, 'RAM': 10} # 只取部件名称生成列表 item_names = list(inventory.keys()) print(item_names) # 输出: ['CPU', 'GPU', 'RAM'] ``` ### 📦 只收集内容:`values()` {#sec-fbf40586bca1} 当只需要数值数据来求和或求均值时,用它最方便。 ```python # 想把所有库存数量相加? counts = list(inventory.values()) print(counts) # 输出: [5, 2, 10] print(sum(counts)) # 总库存: 17 ``` ### 🤝 同时获取键值对:`items()` {#sec-800f80a247a2} 在向其他系统传递数据或需要完全重新组织格式时使用。返回的是由 **元组** 组成的列表。 ```python # 将数据转换为 (部件, 数量) 的列表 pairs = list(inventory.items()) print(pairs) # 输出: [('CPU', 5), ('GPU', 2), ('RAM', 10)] ``` --- ## 3. 更智能一点:排序与应用 {#sec-35564b9943fb} 数据常常需要 **排序** 后才更易阅读。配合 `sorted()` 可以让转换更高级。 ```python my_dict = {'b': 2, 'a': 1, 'c': 3} # 按字母顺序排序键并生成列表 sorted_keys = sorted(my_dict.keys()) print(sorted_keys) # 输出: ['a', 'b', 'c'] # 按数值大小排序值并生成列表 sorted_values = sorted(my_dict.values()) print(sorted_values) # 输出: [1, 2, 3] ``` --- ## 4. 一目了然的转换工具箱 {#sec-a5871f8d0646} | 想实现的目标 | 使用的方法 | 示例结果 | | --- | --- | --- | | **仅键** 列表化 | `list(dict.keys())` | `['name', 'age']` | | **仅值** 列表化 | `list(dict.values())` | `['Alice', 25]` | | **键值对** 列表化 | `list(dict.items())` | `[('name', 'Alice'), ...]` | | **排序后的键** 列表化 | `sorted(dict.keys())` | 字母/数字顺序 | --- ## 结语:比 "怎么做" 更重要的是 "为什么做" {#sec-76f8c7446de3} 单纯记住 `list(my_dict.keys())` 并没有意义。关键是 **“现在手中的这块数据,我该把它雕刻成什么形状,以便交给下一步使用?”** 的思考方式。 在 AI 编写代码的时代,我们必须成为整体 **数据流(Data Flow)** 设计的建筑师。熟练在字典与列表之间自由切换的基础方法,正是让你的工具能够与更广阔的世界(网络、其他编程语言、数据库)对话的第一道门槛。 基础并非枯燥,它是支撑你创造力的最坚实地基。 --- **相关文档** - [把代码变成艺术的 3 个 Pythonic 时刻](/ko/whitedec/2025/11/4/pythonic-code-moments/) - [利用 ** 运算符进行字典合并与键映射](/ko/whitedec/2025/12/26/python-dict-merge-operator/) - [Python __init__ 的作用与使用](/ko/whitedec/2025/11/4/python-init-usage/)