news 2026/5/9 7:01:16

Python中的数据序列其二

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python中的数据序列其二

目录

前言

一、字典

1、为什么需要字典(dict)

2、Python中字典(dict)的概念

3.字典的增删改查操作

增操作(重点)

删操作

改操作

查操作

综合案例

二、集合

1.什么是集合

2.集合的定义

3.集合操作的相关方法(增删查)

增操作

删操作

查操作

三、数据序列中的公共方法

1.什么是公共方法

2.常见公共方法

3.容器类型之间的相互转换


前言

在Python编程中,字典(dict)、集合(set)和序列(列表list、元组tuple)是三种最常用的数据结构。虽然它们各自有独特的特点和用途,但Python为它们设计了许多相似的公共方法,这体现了Python语言设计的一致性。掌握这些公共方法不仅能提高代码效率,还能让我们的编程思维更加清晰。


一、字典

1、为什么需要字典(dict)

字典是Python中唯一的内置映射类型,它存储键值对,键必须是不可变类型(如字符串、数字、元组),而值可以是任意类型。字典中的键是唯一的,但值可以重复。

2、Python中字典(dict)的概念

特点:

  1. 符号为大括号(花括号)=> {}
  2. 数据为键值对形式出现 => {key:value},key:键名,value:值,在同一个字典中,key必须是唯一(类似于索引下标)
  3. 各个键值对之间用逗号隔开

定义:

# 有数据字典 dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'} # 空字典 dict2 = {} dict3 = dict() print(dict1) # {'name': 'Tom', 'age': 20, 'gender': '男'} print(dict2) # {} print(dict3) # {}

在Python代码中,字典中的key必须使用引号引起来

3.字典的增删改查操作

增操作(重点)

基本语法:

字典名称[key] = value

注:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。

案例:

# 1、定义⼀个空字典 person = {} # 2、向字典中添加数据 person['name'] = '刘备' person['age'] = 40 person['address'] = '蜀中' # 3、使⽤print⽅法打印person字典 print(person) # {'name': '刘备', 'age': 40, 'address': '蜀中'}

删操作

  • del 字典名称[key]:删除指定元素
# 1、定义⼀个有数据的字典 person = {'name': '王⼤锤', 'age': 28, 'gender': 'male', 'address': '⻓沙市岳麓区' } # 2、删除字典中的某个元素(如gender) del person['gender'] # 3、打印字典 print(person) # {'name': '王⼤锤', 'age': 28, 'address': '⻓沙市岳麓区'}
  • clear()方法:清空字典中的所有key
# 1、定义⼀个有数据的字典 person = {'name': '王⼤锤', 'age': 28, 'gender': 'male', 'address': '⻓沙市岳麓区' } # 2、使⽤clear()⽅法清空字典 person.clear() # 3、打印字典 print(person) # {}

改操作

基本语法:

字典名称[key] = value

注:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。

案例:

# 1、定义字典 person = {'name': '孙悟空', 'age': 600, 'address': '花果⼭'} # 2、修改字典中的数据(address) person['address'] = '东⼟⼤唐' # 3、打印字典 print(person) # {'name': '孙悟空', 'age': 600, 'address': '东⼟⼤唐'}

查操作

  • 查询方法:使用具体的某个key查询数据,如果未找到,则直接报错。

字典序列[key]

  • 字典的相关查询方法
  1. keys():以列表返回⼀个字典所有的键
  2. values():以列表返回字典中的所有值
  3. items():以列表返回可遍历的(键, 值) 元组 数据
  4. enumerate():把⼀个容器类型(如列表)的数据 构改造成key:value结构

案例1:提取person字典中的所有key

# 1、定义⼀个字典 person = {'name': '貂蝉', 'age': 18, 'mobile': '13765022249'} # 2、提取字典中的name、age以及mobile属性 print(person.keys()) # dict_keys(['name', 'age', 'mobile'])

案例2:提取person字典中的所有value值

# 1、定义⼀个字典 person = {'name': '貂蝉', 'age': 18, 'mobile': '13765022249'} # 2、提取字典中的貂蝉、18以及13765022249号码 print(person.values()) # dict_values({'貂蝉', 18, '13765022249'})

案例3:使用items()方法提取数据

# 1、定义⼀个字典 person = {'name': '貂蝉', 'age': 18, 'mobile': '13765022249'} # 2、调⽤items⽅法获取数据,dict_items([('name', '貂蝉'), ('age', 18), ('mobile', '13765022249')]) # print(person.items()) # 3、结合for循环对字典中的数据进⾏遍历 for key, value in person.items(): print(f'{key}:{value}') # name:貂蝉 # age:18 # mobile:13765022249

案例4:enumerate(),把一个容器类型(如列表)的数据构造成key:value结构

list1 = [10, 20, 30, 40, 50] n = 1 for i in list1: print(f'第{n}个数:{i}') n += 1 print('-' * 40) for key, value in enumerate(list1): print(f'第{key + 1}个数:{value}') # 第1个数:10 # 第2个数:20 # 第3个数:30 # 第4个数:40 # 第5个数:50 # ---------------------------------------- # 第1个数:10 # 第2个数:20 # 第3个数:30 # 第4个数:40 # 第5个数:50

综合案例

# 初始化学生列表 students = [] def student_input(): """获取学生姓名输入""" name = input("请输入学生的姓名:") return name def add_student(): """添加学生信息""" print("\n--- 添加学生信息 ---") name = input("请输入学生的姓名:") age = int(input("请输入学生的年龄:")) score = int(input("请输入学生的成绩:")) student = {"name": name, "age": age, "score": score} students.append(student) print(f"学生 {name} 添加成功!") def query_student(): """查询学生信息""" print("\n--- 查询学生信息 ---") name = input("请输入学生的姓名:") for student in students: if student["name"] == name: print("=" * 30) print(f"姓名: {student['name']}") print(f"年龄: {student['age']}") print(f"成绩: {student['score']}") print("=" * 30) break else: print("没有该学生") def modify_student(): """修改学生信息""" print("\n--- 修改学生信息 ---") name = student_input() found = False for student in students: if student["name"] == name: print(f"找到学生 {name},当前信息:") print(f"姓名: {student['name']}, 年龄: {student['age']}, 成绩: {student['score']}") # 获取新的信息 new_age = input("请输入新的年龄(直接回车保持原值): ") if new_age: student["age"] = int(new_age) new_score = input("请输入新的成绩(直接回车保持原值): ") if new_score: student["score"] = int(new_score) print(f"学生 {name} 信息修改成功!") found = True break if not found: print("没有该学生") def delete_student(): """删除学生信息""" print("\n--- 删除学生信息 ---") name = student_input() for i, student in enumerate(students): if student["name"] == name: print(f"找到学生 {name},确认删除吗? (y/n): ", end="") confirm = input().lower() if confirm == 'y': del students[i] print(f"学生 {name} 删除成功!") else: print("删除操作已取消") break else: print("没有该学生") def show_all_students(): """显示所有学生信息""" print("\n--- 所有学生信息 ---") if not students: print("暂无学生信息") return print("序号\t姓名\t年龄\t成绩") print("-" * 30) for i, student in enumerate(students, 1): print(f"{i}\t{student['name']}\t{student['age']}\t{student['score']}") # 显示统计信息 print("\n统计信息:") print(f"学生总数: {len(students)}") if students: avg_score = sum(s["score"] for s in students) / len(students) print(f"平均成绩: {avg_score:.1f}") def main(): """主程序""" print("=" * 60) print("学生信息管理系统") print("=" * 60) while True: print("\n" + "-" * 60) choice = input( "请输入您的操作:1.添加学生信息\t\t2.查询学生信息\t\t3.修改学生信息\t\t4.删除学生信息\t\t5.显示所有学生\t\t6.退出:") # 检查输入是否有效 if not choice.isdigit(): print("输入错误,请输入数字1-6") continue choice = int(choice) if choice == 1: add_student() elif choice == 2: query_student() elif choice == 3: modify_student() elif choice == 4: delete_student() elif choice == 5: show_all_students() elif choice == 6: print("感谢使用学生信息管理系统,再见!") break else: print("输入错误,请输入1-6之间的数字") # 运行程序 if __name__ == "__main__": main()

二、集合

1.什么是集合

集合(set)是一个无序的不重复元素序列。

  1. 天生去重
  2. 无序

2.集合的定义

在Python中,我们可以使用一对花括号{}或者set()方法来定义集合,但是如果你定义的集合是一个空集合,则只能使用set()方法。

# 定义⼀个集合 s1 = {10, 20, 30, 40, 50} print(s1) # {10, 20, 30, 40, 50} print(type(s1)) # <class 'set'> # 定义⼀个集合:集合中存在相同的数据 s2 = {'刘备', '曹操', '孙权', '曹操'} print(s2) # {'刘备', '孙权', '曹操'} print(type(s1)) # <class 'set'> # 定义空集合 s3 = {} s4 = set() print(type(s3)) # <class 'dict'> print(type(s4)) # <class 'set'>

3.集合操作的相关方法(增删查)

增操作

add()方法:向集合中增加一个元素(单一)

students = set() students.add('张三') students.add('李四') print(students) # {'张三', '李四'}

删操作

remove()方法:删除集合中的指定数据,如果数据不存在则报错。

# 1、定义⼀个集合 products = {'萝⼘', '⽩菜', '⽔蜜桃', '奥利奥', '⻄红柿', '凤梨'} # 2、使⽤remove⽅法删除⽩菜这个元素 products.remove('⽩菜') print(products) # {'⽔蜜桃', '⻄红柿', '奥利奥', '萝⼘', '凤梨'}

查操作

  • in :判断某个元素是否在集合中,如果在,则返回True,否则返回False
  • not in :判断某个元素不在集合中,如果不在,则返回True,否则返回False
# 定义⼀个set集合 s1 = {'张三', '李四', '王五'} # 判断刘帅是否在s1集合中 if '张三' in s1: print('张三在s1集合中') else: print('张三没有出现在s1集合中')
  • 集合的遍历操作
# 定义⼀个set集合 s1 = {'张三', '李四', '王五'} for i in s1: print(i) # 王五 # 张三 # 李四

三、数据序列中的公共方法

1.什么是公共方法

所谓的公共方法就是支持大部分数据序列。

2.常见公共方法

  1. +:合并
  2. *:复制
  3. in:元素是否存在
  4. not in:元素是否存在
  5. max():返回容器中的最大值
  6. min():返回容器中的最小值

案例1:+ 合并

# 1、+加号,代表两个序列之间的连接与整合 str1 = 'hello' str2 = 'world' print(str1 + str2) # helloworld # 2、定义两个列表,对其数据进⾏整合 list1 = ['刘备', '关⽻'] list2 = ['诸葛亮', '赵云'] print(list1 + list2) # ['刘备', '关⽻', '诸葛亮', '赵云'] # 3、定义两个元组,对其数据进⾏整合 tuple1 = (10, 20) tuple2 = (30, 40) print(tuple1 + tuple2) # (10, 20, 30, 40)

案例2:* 复制,其中set与int类型不支持

# 1、字符串与乘号的关系 print('-' * 40) print('Python管理系统V1.0') print('-' * 40) # 2、列表与乘号的关系 list1 = ['*'] print(list1 * 10) # 3、元组与乘号的关系 tuple1 = (10, ) print(tuple1 * 10)

案例3:in与not in方法

ips = ['192.168.10.11', '10.1.1.100', '172.15.184.31'] if '10.1.1.100' in ips: print('列表中元素已存在') else: print('列表中元素不存在')

案例4:求某个序列中元素的最大值和最小值

num1 = int(input('请输⼊第⼀个数:')) num2 = int(input('请输⼊第⼆个数:')) num3 = int(input('请输⼊第三个数:')) list1 = [num1, num2, num3] max_num = max(list1) min_num = min(list1) print(f'最⼤值:{max_num}') print(f'最⼩值:{min_num}')

3.容器类型之间的相互转换

list()方法:把某个序列类型的数据转化为列表

# 1、定义元组类型的序列 tuple1 = (10, 20, 30) print(list(tuple1)) # [10, 20, 30] # 2、定义⼀个集合类型的序列 set1 = {'a', 'b', 'c', 'd'} print(list(set1)) # ['a', 'b', 'c', 'd']

tuple()方法:把某个序列类型的数据转化为元组

# 1、定义⼀个列表类型的数据 list1 = ['a', 'b', 'c', 'd'] print(tuple(list1)) # ('a', 'b', 'c', 'd') # 2、定义⼀个集合类型的数据 set1 = {10, 20, 30, 40} print(tuple(set1)) # (10, 20, 30, 40)

set()方法:将某个序列转换成集合

注意:

  1. 集合可以快速完成列表去重
  2. 集合不支持下标
# 1、定义⼀个列表类型的数据 list1 = ['a', 'b', 'c', 'd', 'a'] print(set(list1)) # {'b', 'a', 'd', 'c'} # 2、定义⼀个元组类型的数据 tuple1 = (10, 20, 30, 40) print(set(tuple1)) # {10, 20, 30, 40}

总结

在Python编程领域中,字典、集合与数据序列(主要包括列表与元组)虽然各自承担着不同的数据组织使命,却共享着一套精心设计的公共方法体系,这深刻体现了Python语言追求一致性与简洁性的设计哲学。这些公共方法如同一条无形的纽带,将三者紧密联系,显著降低了学习与使用的认知负担。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 16:02:20

Unity翻译插件重构指南:从零打造专业级本地化方案

Unity翻译插件重构指南&#xff1a;从零打造专业级本地化方案 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 在游戏全球化浪潮中&#xff0c;Unity翻译插件已成为连接不同语言玩家的关键技术桥梁。本文将…

作者头像 李华
网站建设 2026/4/30 18:42:59

哔哩下载姬DownKyi:B站视频高效下载与管理全攻略

哔哩下载姬DownKyi是一款功能强大的B站视频下载工具&#xff0c;专为需要批量保存高质量视频内容的用户设计。无论是追番收藏、学习资料备份&#xff0c;还是创作素材积累&#xff0c;这款工具都能提供专业级的下载体验。 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0…

作者头像 李华
网站建设 2026/5/1 2:31:47

Unity游戏语言障碍终极解决方案:XUnity自动翻译完整攻略

Unity游戏语言障碍终极解决方案&#xff1a;XUnity自动翻译完整攻略 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 外文Unity游戏玩家经常面临语言壁垒的困扰&#xff0c;无法充分体验全球优秀游戏的魅力…

作者头像 李华
网站建设 2026/5/1 14:29:31

DownKyi视频下载神器:从零开始的超详细使用教程

在数字内容日益丰富的今天&#xff0c;B站已成为我们获取知识、娱乐和学习的重要平台。然而&#xff0c;网络不稳定、视频无法离线观看等问题常常困扰着用户。今天&#xff0c;我要为大家介绍一款强大的B站视频下载工具——DownKyi&#xff0c;这款免费开源的神器能够完美解决你…

作者头像 李华
网站建设 2026/5/8 0:04:07

Windows虚拟手柄驱动终极配置:5分钟快速上手指南

Windows虚拟手柄驱动终极配置&#xff1a;5分钟快速上手指南 【免费下载链接】ViGEmBus 项目地址: https://gitcode.com/gh_mirrors/vig/ViGEmBus ViGEmBus虚拟手柄驱动是一款强大的内核级驱动程序&#xff0c;能够完美模拟Xbox 360和DualShock 4游戏控制器&#xff0c…

作者头像 李华
网站建设 2026/5/8 0:15:18

Unity游戏自动翻译工具XUnity.AutoTranslator全面配置指南

Unity游戏自动翻译工具XUnity.AutoTranslator全面配置指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为看不懂的日文RPG游戏而苦恼吗&#xff1f;是否因为语言障碍错过了许多优秀的独立游戏&…

作者头像 李华