news 2026/4/1 22:41:52

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/3/30 21:27:37

XUnity.AutoTranslator深度解析:Unity游戏翻译的革命性工具

XUnity.AutoTranslator深度解析&#xff1a;Unity游戏翻译的革命性工具 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 在全球化游戏市场的今天&#xff0c;语言障碍常常成为玩家体验的绊脚石。XUnity.Au…

作者头像 李华
网站建设 2026/3/30 21:55:44

Spark Streaming最佳实践:处理TB级实时数据的技巧

Spark Streaming最佳实践&#xff1a;处理TB级实时数据的技巧 1. 引入与连接&#xff1a;当“双11”的洪流涌来时&#xff0c;你需要的不只是勇气 想象这样一个场景&#xff1a;2024年双11零点&#xff0c;某电商平台的用户行为日志以每秒100万条的速度涌入数据管道——用户点…

作者头像 李华
网站建设 2026/3/19 0:43:10

哔哩下载姬DownKyi终极指南:5大高效技巧打造个人视频资源库

还在为B站精彩视频无法离线保存而烦恼吗&#xff1f;哔哩下载姬DownKyi作为专业的B站视频下载神器&#xff0c;让你轻松收藏心仪内容。本指南将用全新视角带你从零开始&#xff0c;掌握这款强大工具的核心用法&#xff0c;打造属于你的视频资源库&#xff01;✨ 【免费下载链接…

作者头像 李华
网站建设 2026/4/1 14:42:37

5个技巧掌握哔哩下载姬DownKyi:B站视频批量下载终极指南

哔哩下载姬DownKyi是一款强大的B站视频下载工具&#xff0c;支持批量下载、8K超高清、HDR和杜比视界等高级功能。无论是学习资料收藏还是娱乐内容保存&#xff0c;这款工具都能提供完整的解决方案。 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载…

作者头像 李华
网站建设 2026/3/31 15:29:24

2025毕业季自救:知网维普算法更新后,如何靠这几招稳稳降低ai率?

其实呢&#xff0c;最近刷到好多大四和研三的宝子在后台给我留言&#xff0c;说自己简直要崩溃了。明明论文是自己对着电脑一个字一个字码出来的&#xff0c;结果往知网或者维普里一扔&#xff0c;AIGC检测那一栏红得让人心惊胆战。话说回来&#xff0c;现在的检测系统算法更新…

作者头像 李华
网站建设 2026/4/1 21:07:55

RocketMQ 常见概念命名规范

摘自&#xff1a;https://cloud.tencent.com/document/product/1493/104265 RocketMQ 常见概念命名规范 最近更新时间&#xff1a;2025-06-10 16:17:03 我的收藏 本页目录&#xff1a; 命名规范 topictagkeysproducer groupconsumer grouproleclientIdinstanceName 使用规范…

作者头像 李华