当前位置:首页>python>每天10分钟玩转Python基础篇 - 内置基本数据结构使用:列表 / 元组 / 字典 / 集合

每天10分钟玩转Python基础篇 - 内置基本数据结构使用:列表 / 元组 / 字典 / 集合

  • 2026-10-10 18:36:30
每天10分钟玩转Python基础篇 - 内置基本数据结构使用:列表 / 元组 / 字典 / 集合
PYTHON · 基础篇第5课2026.08

数据散落一地,不知道往哪装?

四种容器,装下所有数据

列表 · 元组 · 字典 · 集合

📦 3 PARTS + CONCLUSION

👉 滑动

PART 01

通俗原理

四种容器

PART 02

完整代码

6 步实操

PART 03

踩坑总结

5 个常见坑

PART ///

写在最后

小结自检

这是基础篇第5篇。前几篇我们学会了变量、条件、循环,还学会了处理文本(字符串)。今天学 Python 里最常用的四种“装数据的容器”:列表、元组、字典、集合。以后写程序,90% 的数据都装在这四个容器里。

你有没有想过:程序是怎么把一堆数据存起来的?比如一个班 40 个学生的成绩、一个购物车里的商品、一套键位映射。Python 给你准备了四种现成的容器,各有各的性格。看完这篇,你会知道什么时候该用哪个,并且能熟练地往里面放数据、取数据、改数据。整个内容围绕一个真实的例子展开:一个小卖部的商品库存管理。

01

前置知识

PREREQUISITES · 准备什么

✅

会建 uv 项目,会运行 uv run python 文件名.py(第3篇讲过)。

✅

变量和 print,知道变量是什么,会用 print() 输出。

✅

for 和 if,知道 for 循环和 if 判断(第2篇讲过)。不熟的话翻回前几篇补一下。

02

通俗原理

CONCEPTS · 四种容器是什么

把四种容器想成四种“收纳工具”:

🗂️

列表(list)= 抽屉柜:一格一格排好序,可以往任意格子塞东西、换东西、拿走东西。用 [] 表示。

📦

元组(tuple)= 密封盒:装进去就锁死,不能改,适合放固定不变的东西。用 () 表示。

🗃️

字典(dict)= 带标签的档案袋:每个值都有一个标签(键),按标签找东西超快。用 {} 和 键: 值 表示。

🎯

集合(set)= 只收不重样的收纳盒:自动去重,还支持交集、并集、差集运算。用 {} 表示(空集合用 set())。

记住一句口诀:列表要顺序、元组要固定、字典查标签、集合去重快。

03

完整代码

CODE · 6 步实操

STEP 01

列表——最常用的容器

列表能装任何东西,还能随时改:

python

fruits = ["苹果", "香蕉", "橙子"]        # 创建列表

fruits.append("葡萄")                     # 末尾添加

fruits.insert(1, "梨")                    # 在位置1插入

fruits.remove("香蕉")                     # 按值删除

item = fruits.pop()                       # 弹出末尾并返回

print(fruits)        # ['苹果', '梨', '橙子']

print(item)          # 葡萄

print(fruits[0])     # 苹果(第0个)

print(fruits[-1])    # 橙子(最后一个)

print(fruits[1:3])   # ['梨', '橙子'](切片)

fruits[0] = "猕猴桃"  # 修改第0个

print(fruits)        # ['猕猴桃', '梨', '橙子']

运行结果:

output

['苹果', '梨', '橙子'] 葡萄

苹果 橙子

['梨', '橙子']

['猕猴桃', '梨', '橙子']

STEP 02

元组——装好就不改

元组跟列表很像,区别是不能改:

python

t = (1, 2, 3)        # 创建元组

print(t[0], t[-1])   # 1 3

print(len(t))        # 3

a, b, c = t          # 解包:一次取出

print(a, b, c)       # 1 2 3

single = (5,)        # 单个元素必须加逗号

运行结果:

output

1 3 3

1 2 3

元组最常见的用法:函数返回多个值、解包赋值、坐标点、日期。还有一点,元组能当字典的键,列表不能。

STEP 03

字典——按标签查值

字典用键查值,就像查字典按词条找解释:

python

scores = {"语文": 90, "数学": 85}   # 创建字典

scores["英语"] = 88                 # 新增键值对

scores["数学"] = 92                 # 修改已有键

print(scores)        # {'语文': 90, '数学': 92, '英语': 88}

print(scores["语文"])  # 90(按键取值)

print(scores.get("物理", "没有"))   # 没有(找不到返回默认值)

del scores["语文"]    # 删除

print(scores)        # {'数学': 92, '英语': 88}

print("数学" in scores)  # True(判断键是否存在)

运行结果:

output

{'语文': 90, '数学': 92, '英语': 88}

90

没有

{'数学': 92, '英语': 88}

True

STEP 04

集合——自动去重

集合最拿手的就是去重,还能做集合运算:

python

nums = [1, 2, 2, 3, 3, 3]     # 一个有很多重复的列表

unique = set(nums)            # 转成集合自动去重

print(unique)        # {1, 2, 3}

a_set = {1, 2, 3}

b_set = {2, 3, 4}

print(a_set & b_set)  # {2, 3}        交集

print(a_set | b_set)  # {1, 2, 3, 4}  并集

print(a_set - b_set)  # {1}           差集

运行结果:

output

{1, 2, 3}

{2, 3}

{1, 2, 3, 4}

{1}

STEP 05

遍历和推导式

循环遍历各种容器,用推导式一行生成新列表:

python

for f in ["a", "b", "c"]:          # 遍历列表

    print(f, end=" ")

print()                            # a b c

for k, v in {"x": 1, "y": 2}.items():  # 遍历字典

    print(k, v, end="; ")

print()                            # x 1; y 2;

for i, f in enumerate(["p", "q"]): # 带索引遍历

    print(i, f, end="; ")

print()                            # 0 p; 1 q;

squares = [n * n for n in range(1, 6)]  # 推导式

print(squares)     # [1, 4, 9, 16, 25]

evens = [n for n in range(1, 11) if n % 2 == 0]

print(evens)       # [2, 4, 6, 8, 10]

运行结果:

output

a b c

x 1; y 2;

0 p; 1 q;

[1, 4, 9, 16, 25]

[2, 4, 6, 8, 10]

STEP 06

实战——商品库存管理

现在把四种容器用起来:一个小卖部的进货、出货、查库存、找缺货商品。

python

# 库存表:字典(商品名 → 数量)

inventory = {"苹果": 10, "香蕉": 5}

# 进货:苹果来了5个

inventory["苹果"] += 5

print(inventory)     # {'苹果': 15, '香蕉': 5}

# 出货:卖1个苹果(先检查库存够不够)

item_name = "苹果"

if inventory.get(item_name, 0) > 0:

    inventory[item_name] -= 1

print(inventory)     # {'苹果': 14, '香蕉': 5}

# 总库存:sum + values()

print(sum(inventory.values()))   # 19

# 找缺货商品(数量少于5的)——列表推导式

low = [name for name, count in inventory.items() if count < 5]

print(low)           # [](都不缺货)

运行结果:

output

{'苹果': 15, '香蕉': 5}

{'苹果': 14, '香蕉': 5}

19

[]

04

运行结果

RESULTS · 实测输出

所有代码我都用 Python 3.14 实际跑过,输出和上面完全一致。你跟着敲,看到一样的结果就说明对了。

05

踩坑总结

PITFALLS · 5 个常见坑

1. 元组只有一个元素要加逗号:(5) 是数字 5,(5,) 才是元组。少了逗号就变了。

2. 空集合不是 {}:{} 是空字典!空集合必须写 set()。这是新手最容易搞混的。

3. 字典取值用 get 更安全:scores["物理"] 键不存在会报 KeyError,scores.get("物理", 0) 返回默认值不报错。

4. 列表修改和切片要分清:fruits[0] = "猕猴桃" 改原列表;fruits[1:3] = [...] 也是改原列表,但 fruits[1:3] 单独用是取出新列表。

5. 集合和字典的 in 极快:in 在集合、字典键上都是 O(1) 极快,列表是 O(n) 逐个找。数据量大时选对容器能差出几百倍。

06

进阶拓展

NEXT · 还能怎么玩

💡

collections 模块:defaultdict(字典默认值)、Counter(计数)、OrderedDict(有序字典)。第4篇的聊天记录统计就用过 Counter。

💡

嵌套结构:列表里套字典、字典里套列表,是真实程序最常见的组合(比如一个班的成绩:[{"name": "小明", "score": 90}, ...])。

💡

生成器表达式:(n*n for n in range(100)) 和推导式很像,但不占内存,数据大时用。

///

写在最后

SUMMARY · 小结自检

今天学了四种内置数据结构,用一张表总结:

容器
符号
特点
典型场景
列表
[]
有序、可变、可重复
购物车、待办清单
元组
()
有序、不可变
坐标、日期、多返回值
字典
{}
键值对、查找快
成绩表、配置项
集合
set()
无序、去重
去重、交集差集

口诀:列表要顺序、元组要固定、字典查标签、集合去重快。

自检一下:能说出四种容器各自的特点吗?能把一个班的成绩装进合适的容器吗?能写出找缺货商品的推导式吗?都行的话,今天这四种容器你就真正掌握了。

既然看到这里了,如果觉得有用,随手点个赞、在看、转发三连吧。

点赞
在看
转发

THANKS FOR READING

最新文章

随机文章