新闻详情

新闻详情

首页 / 资讯中心 / 详情

Python 四大数据结构详解:元组、列表、集合、字典的特点与增删改查

发布时间:2026/10/1 8:14:07来源:尧图网络
Python 四大数据结构详解:元组、列表、集合、字典的特点与增删改查
元组(Tuple)特点小括号()、不可变、有序、可重复。不可变tuple创建后不能做任何修改元素无法修改元组本身无法增加元素或删除元素(所谓的增加/删除元素本质是创建新元组)有序元素有固定顺序可重复可以包含重复元素Python代码示例tup (1, 2, 3, 2)print(tup) # (1, 2, 3, 2)print(tup[0]) # 1有序可索引print(tup.count(2)) # 2可重复#tup[0] 100 # TypeError: ‘tuple’ object does not support item assignment创建后不能修改#新增一个元素本质是创建新元组tup (1, 2, 3)tup2 tup (4,)print(tup2) # (1, 2, 3, 4)print(tup) # (1, 2, 3) 原元组不变#删除一个元素本质是创建新元组tup (1, 2, 3)tup2 tuple(x for x in tup if x ! 3)print(tup2) # (1, 2)print(tup) # (1, 2, 3) 原元组不变列表[List]特点中括号 []、可变、有序、可重复。可变List创建后可以修改元素可以修改列表本身可以增加元素或删除元素有序元素有固定顺序可重复可以包含重复元素。Python代码示例lst [1, 2, 3, 2]print(lst) # [1, 2, 3, 2]print(lst[0]) # 1有序可索引print(lst.count(2)) # 2可重复lst[0] 100 # 可变可以修改print(lst) # [100, 2, 3, 2]#新增一个元素lst [1, 2, 3]lst.append(4)print(lst) # [1, 2, 3, 4]#删除一个元素lst [1, 2, 3]lst.remove(2) # 按值删除print(lst) # [1, 3]#或用 pop 按索引删除lst [1, 2, 3]lst.pop(1) # 删除索引 1print(lst) # [1, 3]集合{Set}特点大括号 {}、可变、无序、元素唯一、空集合用 set()。可变Set创建后可以新增或删除元素但已经存在的元素本身必须不可变因为元素不能索引无序元素没有固定顺序元素唯一自动去重Python代码示例s {1, 2, 3, 2, 2}print(s) # {1, 2, 3}自动去重#print(s[0]) # TypeError: ‘set’ object is not subscriptable无序不能索引s.add(4) # 可变print(s) # {1, 2, 3, 4}#新增一个元素s {1, 2, 3}s.add(4)print(s) # {1, 2, 3, 4}#删除一个元素s {1, 2, 3}s.remove(2)print(s) # {1, 3}#remove 删除不存在的元素会报错可用 discard 更安全s {1, 2, 3}s.discard(5) # 不存在也不报错print(s) # {1, 2, 3}字典{Dict}特点大括号 {}、可变、无序、键值对、键唯一、值可重复。键值对元素是key:value格式可变键值对中键无法改修改d[“name”] d.pop(“name1”)其实是删除旧键 新增新键的操作值可以修改字典本身可以新增和删除键值对Python代码示例d {“name”: “Alice”, “age”: 25}print(d) # {‘name’: ‘Alice’, ‘age’: 25}d[“age”] 26 # 可变可以修改print(d) # {‘name’: ‘Alice’, ‘age’: 26}d2 {“name”: “Alice”, “name”: “Bob”}print(d2) # {‘name’: ‘Bob’}键唯一重复会覆盖d3 {“a”: 1, “b”: 1}print(d3) # {‘a’: 1, ‘b’: 1}值可重复#新增一个元素键值对d {“name”: “Alice”, “age”: 25}d[“city”] “Beijing”print(d) # {‘name’: ‘Alice’, ‘age’: 25, ‘city’: ‘Beijing’}#删除一个元素键值对d {“name”: “Alice”, “age”: 25, “city”: “Beijing”}del d[“age”]print(d) # {‘name’: ‘Alice’, ‘city’: ‘Beijing’}#或用 pop 删除并返回被删的值d {“name”: “Alice”, “age”: 25}age d.pop(“age”)print(age) # 25print(d) # {‘name’: ‘Alice’}元素Element元组、列表、集合、字典中的单个数据项比如列表[10, “hello”] 中的 10 和 “hello”索引Index元素的位置从 0 开始比如my_list[0] 表示访问第一个元素长度Lengthmy_tuple是列表则len(my_tuple) 返回元组my_tuple的元素个数 len(str(my_tuple[4]))返回元组第5个元素的长度my_list是列表则len(my_list) 返回列表my_list的元素个数 len(my_list[4])返回列表第5个元素的长度my_dict是字典则len(my_dict) 返回字典my_dict的元素个数len(my_dict[key])可以直接获取字典中某个键对应的值的长度my_set是集合则len(my_set) 返回集合my_set的元素个数,len(my_set[1])则会报错(“‘set’ object is not subscriptable”)len() 只能用于可迭代对象如字符串、列表、字典、集合等而整数没有长度如果len(int型数字)则会报错object of type ‘int’ has no len()Python代码示例tup (‘a’, ‘bb’, ‘ccc’, ‘dddd’)print(len(tup)) # 4元素个数print(tup[2]) # ccc第三个元素print(len(tup[2])) # 3第三个元素的长度lst [‘a’, ‘bb’, ‘ccc’]print(len(lst)) # 3元素个数print(lst[2]) # ccc第三个元素print(len(lst[2])) # 3第三个元素的长度s {‘a’, ‘bb’, ‘ccc’, ‘dddd’, ‘eeeee’}print(len(s)) # 5元素个数s_list list(s)print(s_list[2]) # 第三个元素顺序不固定print(len(s_list[2])) # 第三个元素的长度d {“name”: “Alice”, “age”: 25, “city”: “Beijing”}print(len(d)) # 3键值对个数d_items list(d.items())print(d_items[2]) # (‘city’, ‘Beijing’)第三个键值对print(len(d_items[2][0])) # 4第三个键 ‘city’ 的长度print(len(d_items[2][1])) # 7第三个值 ‘Beijing’ 的长度其他一些示例{}{}表示一个空字典而不是空集合。my_type {}my_type1 {“a”: 1, “b”: 2}print(type(my_type)) # class ‘dict’print(type(my_type1)) # class ‘dict’set()set()表示一个空集合。my_type set()my_type1 {1, 2, 3}print(type(my_type)) # class ‘set’print(type(my_type1)) # class ‘set’列表 [-1]表示取倒数第一个元素t [10,9,8,7,6,5,4,3]print(t[-1]) # 输出3print(t[-6]) # 输出8列表清空用clear()函数my_list [1, 2, 3, 4, 5]print(“原始列表:”, my_list) # 输出: [1, 2, 3, 4, 5]my_list.clear()print(“清空后:”, my_list) # 输出: []字典清除某个元素的值(键值对中的值)my_dict {‘A’: [1,2], ‘B’: [3], ‘C’: [4]}my_dict[‘A’].clear()print(my_dict)#输出结果{‘A’: [], ‘B’: [3], ‘C’: [4]}或my_dict {‘name’: ‘Alice’, ‘age’: 25, ‘scores’: [85, 90, 78], ‘city’: ‘Beijing’}my_dict[‘age’] Nonemy_dict[‘scores’] []print(my_dict)#输出结果{‘name’: ‘Alice’, ‘age’: None, ‘scores’: [], ‘city’: ‘Beijing’}
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

STM32 C++实战:从LED点灯到中断回调的封装之旅 2026/10/1 9:07:31

STM32 C++实战:从LED点灯到中断回调的封装之旅

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
UE C++ Timer原理与防崩溃实战:GameThread定时调度详解 2026/10/1 9:07:31

UE C++ Timer原理与防崩溃实战:GameThread定时调度详解

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Avalonia跨平台工业监控面板实战:Modbus TCP通信与离线部署踩坑记 2026/10/1 9:07:31

Avalonia跨平台工业监控面板实战:Modbus TCP通信与离线部署踩坑记

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Linux进程管理本质:ps与kill的内核级原理与实战诊断 2026/10/1 9:07:30

Linux进程管理本质:ps与kill的内核级原理与实战诊断

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Java终端乱码根源与四层UTF-8校准方案 2026/10/1 9:07:30

Java终端乱码根源与四层UTF-8校准方案

1. 问题本质与真实影响范围:这不是“显示异常”,而是编码链路的系统性断裂你点下F5运行一个Java程序,终端里蹦出来的不是“你好世界”,而是“浣犲ソ涓栫晫”或者一堆问号、方块、UFFFD符号——这种场景我过去三年在带新人、做企业…

阅读更多 →
Delphi集成Edge Browser:WebView2内核实战指南 2026/10/1 9:07:23

Delphi集成Edge Browser:WebView2内核实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉