news 2026/6/15 13:00: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/6/15 12:00:15

G-Helper终极指南:华硕设备硬件控制与性能优化全解析

G-Helper终极指南&#xff1a;华硕设备硬件控制与性能优化全解析 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other models 项目地址…

作者头像 李华
网站建设 2026/6/14 8:40:24

哔哩下载姬DownKyi终极教程:7步精通视频下载与管理的完整指南

哔哩下载姬DownKyi终极教程&#xff1a;7步精通视频下载与管理的完整指南 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等…

作者头像 李华
网站建设 2026/6/14 23:18:25

新手也能看懂的【前端自动化测试入门】

最近在网上搜索前端自动化测试相关的文档&#xff0c;但是发现网上的文章都是偏使用&#xff0c;没有把一些基础概念说清楚&#xff0c;导致后续一口气遇到一些karma、Jasmine、jest、Mocha、Chai、BDD等词汇的时候很容易一头雾水&#xff0c;这次一方面整理一下收获的知识一方…

作者头像 李华
网站建设 2026/6/15 10:51:38

XUnity.AutoTranslator 游戏翻译神器:打破语言障碍的终极解决方案

XUnity.AutoTranslator 游戏翻译神器&#xff1a;打破语言障碍的终极解决方案 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为看不懂外语游戏而苦恼吗&#xff1f;XUnity.AutoTranslator这款革命性…

作者头像 李华
网站建设 2026/6/14 6:06:17

Unity游戏翻译神器:XUnity Auto Translator完整使用手册

Unity游戏翻译神器&#xff1a;XUnity Auto Translator完整使用手册 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity Auto Translator是一款专业的Unity游戏自动翻译插件&#xff0c;能够为游戏开发…

作者头像 李华
网站建设 2026/6/15 12:40:44

springboot基于Hadoop的豆瓣电子图书推荐系统爬虫_28r41260

目录已开发项目效果实现截图开发技术介绍核心代码参考示例1.建立用户稀疏矩阵&#xff0c;用于用户相似度计算【相似度矩阵】2.计算目标用户与其他用户的相似度系统测试总结源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;已开发项目效果…

作者头像 李华