七、Python —— 元组、集合和字典

文章目录

  • 一、元组
    • 1.1、元组的初始化
    • 1.2、元组的解包
    • 1.3、元组的比较运算
    • 1.4、元组的其他操作
  • 二、集合 set
    • 2.1、集合的初始化
    • 2.2、集合的常用操作
    • 2.3、使用 for 循环遍历集合
  • 三、字典 map
    • 3.1、字典的初始化
    • 3.2、字典的常用操作
    • 3.3、使用 for 循环遍历字典
  • 四、补充


一、元组

 元组跟列表类似,只是 不支持 动态添加、删除元素、修改元素

1.1、元组的初始化

元组 需要用 小括号 括起来,中间的元素用 逗号隔开
注意,如果 初始化 只包含 一个元素 的元组,需要在该元素 后添加逗号

a = ()  # 初始化一个空元组
b = (1, 2)  # 含有2个整数的元组
c = 6, "Python", 3.14  # 小括号可以省略,等价于(6, "Python", 3.14)
d = (5,)  # 注意不能写成(5),(5)表示整数5
e = 5,  # 等价于(5,)

print(a, b, c, d, e)
"""output
() (1, 2) (6, 'Python', 3.14) (5,) (5,)

"""

1.2、元组的解包

t = 12345, 54321, "Hello!"  # 初始化一个元组
x, y, z = t  # 将元组解包,将元组内的三个值按顺序赋值给x、y、z
print(x, y, z)
"""output
12345 54321 Hello!

"""

 所以,2. 判断语句 中学习的 交换操作,本质上是 元组的解包

a, b = 3, 4  # 将元组(3, 4)解包,分别赋值给a、b
a, b = b, a  # 将元组(b, a)解包,分别赋值给a、b

 同样地,6. 函数函数返回多个值,本质上也是 返回了一个元组

def calc(x, y):
    return x + y, x * y  # 等价于 return (x + y, x * y)

x, y = 3, 4
s, p = calc(x, y)  # 将(x + y, x * y)解包,分别赋值给s、p
print(s, p)

1.3、元组的比较运算

 元组和列表均支持 比较运算符==!=><>=<= 等,按字典序 进行比较。

1.4、元组的其他操作

 元组的 下标访问元素循环遍历切片加法和乘法运算 等操作,都 与列表相同


二、集合 set

 集合是 Python 中最常用的数据结构之一,用来 存储不同元素。注意,集合中的元素是 无序的

2.1、集合的初始化

创建集合花括号set()函数。注意:创建 空集合 只能用 set(),不能用 {},因为 {} 创建的是 空字典,会在下一小节里介绍字典。
 集合常见的初始化方式:

basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}  # 会自动去除重复元素
print(basket)  # 重复的元素已经去除了

s = set()  # 初始化一个空列表
print(s)

a = [1, 2, 1, 3, 1]
b = set(a)  # 将列表转化成集合,一般是为了去重。
c = list(b)  # 将集合转化回列表
print(b, c)

x = "abracadabra"
a = set(x)  # 将字符串中的每个字符存到集合中
b = str(a)  # 注意,这里并不能将集合转化回原字符串,而是用格式化表示集合中的内容
print(a, b)
"""output
{'apple', 'orange', 'banana', 'pear'}
set()
{1, 2, 3} [1, 2, 3]
{'r', 'a', 'c', 'b', 'd'} {'r', 'a', 'c', 'b', 'd'}

"""

2.2、集合的常用操作

 假设 a 表示一个集合。

函数功能
len(a)返回集合中包含的元素数量
a.add(x)在集合中添加一个元素
a.remove(x)删除集合中的 x,如果 x 不存在,则报异常
a.discard(x)删除集合中的 x,如果 x 不存在,则不进行任何操作
x in a判断 x 是否在 a
x not in a判断 x 是否不在 a
a = {1, 2, 3}

print(len(a))  # 输出3

a.add(4)
print(a)  # 输出 {1, 2, 3, 4},注意集合中的元素是无序的。

a.remove(2)
print(a)  # 输出 {1, 3, 4}

#  a.remove(5)  # 因为5不存在,所以会报异常
a.discard(5)  # 因为5不存在,所以不进行任何操作
print(a)  # {1, 3, 4}

2.3、使用 for 循环遍历集合

 类似于列表,集合也可以用 for ... in ... 的形式遍历。例如:

a = {1, 2, 3}

for x in a:  # 循环遍历整个集合
    print(x, end=' ')

三、字典 map

字典 是 Python 中最常用的数据结构之一,用来 存储 映射关系。注意,字典中的元素是 无序的

 不同于列表,字典以 key 进行索引 的,可以将 每个 key 映射到某个 valuekey 可以是 任何不可变类型,常用 可以作为 key的类型数字 和 字符串列表 因为是 可变的,所以 不能作为 keyvalue 可以是 任意类型

3.1、字典的初始化

创建字典花括号dict() 函数

tel = {'jack': 4098, 'sape': 4139}  # 创建一个字典
print(tel)  # 输出 {'jack': 4098, 'sape': 4139}

a = dict()  # 创建一个空字典
a[123] = "abc"  # 在字典中插入一个key-value对
a[456] = "def"  # 在字典中插入一个key-value对
print(a)  # 输出 {123: 'abc', 456: 'def'}

b = list(a)  # 将字典的关键字转化成列表
print(b)  # 输出[123, 456]

3.2、字典的常用操作

 假设 a 表示一个字典。

函数功能
len(a)返回字典中的元素对数
a[x]获取关键字 x 对应的值,如果 x 不存在,会报异常
a.get(x)获取关键字 x 对应的值,如果 x 不存在,会返回 None,不会报异常
a.get(x, y)获取关键字 x 对应的值,如果 x 不存在,会返回默认值 y,不会报异常
a[x] = y在字典中插入一对元素,如果关键字 x 已存在,则将它之前映射的值覆盖掉
del a[x]删除关键字 x 对应的元素对,如果 x 不存在,会报异常
x in a检查字典中是否存在关键字 x
x not in a检查字典中是否不存在关键字 x
a.keys()返回字典的所有 key
a.values()返回字典的所有 value
a.items()返回字典的所有由 keyvalue 组成的元组
a = {'abc': 1, 'def': 2, 'python': 3}  # 初始化一个字典

print(len(a))  # 输出3
print(a['def'])  # 输出2
print(a.get('def'))  # 输出2
print(a.get('xyz', 5))  # 因为'xyz'不存在,所以输出默认值5

a['hello'] = 4  # 插入一对元素 'hello' -> 4
print(a)  # 输出{'abc': 1, 'def': 2, 'python': 3, 'hello': 4}

a['def'] = 5  # 更新'def'映射的值
print(a['def'])  # 输出5

del a['python']  # 删除关键字'python'
print(a)  # 输出{'abc': 1, 'def': 5, 'hello': 4}

print('hello' in a)  # 输出True
print(a.keys())  # 输出dict_keys(['abc', 'def', 'hello'])
print(a.values())  # 输出dict_values([1, 5, 4])
print(a.items())  # 输出dict_items([('abc', 1), ('def', 5), ('hello', 4)])

3.3、使用 for 循环遍历字典

 类似于列表,字典也可以用 for ... in ... 的形式遍历。例如:

a = {'abc': 1, 'def': 2, 'python': 3}  # 初始化一个字典

for k in a:  # 遍历key
    print(k, end=' ')
print()  # 输出回车

for k in a.keys():  # 遍历key
    print(k, end=' ')
print()  # 输出回车

for v in a.values():  # 遍历value
    print(v, end=' ')
print()  # 输出回车

for k, v in a.items():  # 遍历key-value对
    print("(%s, %d) " % (k, v), end=' ')
print()  # 输出回车
"""output
abc def python 
abc def python 
1 2 3 
(abc, 1)  (def, 2)  (python, 3)  

"""

四、补充

  1. map() 也可以用 for ... in ... 的形式遍历。例如:for x in map(int, input().split()) 可以遍历一行内 用空格隔开 的每个整数。
  2. map() 函数的 返回值 也可以 直接转化成 set(),例如:set(map(int, input().split())) 可以将一行 用空格隔开 的整数存到 set() 中。
  3. sorted() 函数可以将 列表、元组、集合、字典 排序,并返回一个 新列表。如果 对 字典 排序,则返回字典所有 key 排序 后的 列表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/927331.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PDF版地形图矢量出现的问题

项目描述&#xff1a;已建风电场道路测绘项目&#xff0c;收集到的数据为PDF版本的地形图&#xff0c;图上标注了项目竣工时期的现状&#xff0c;之后项目对施工区域进行了复垦恢复地貌&#xff0c;现阶段需要准确的知道实际复垦修复之后的道路及其它临时用地的面积 解决方法&…

群论入门笔记

群的基本定义 群由一组元素 G 和一个运算&#xff08;常用符号包括 &#xff0c;x , 或 ∗&#xff09;组成。 封闭性 对于任意两个元素 x,y∈G&#xff0c;运算 x * y 的结果仍然属于集合 G&#xff0c;即&#xff1a; ∀x,y∈G,x∗y∈G. 结合律 对于任意 a,b,c∈G&…

LabVIEW内燃机气道试验台测控系统

基于LabVIEW软件开发的内燃机气道试验台测控系统主要应用于内燃机气道的性能测试和数据分析&#xff0c;通过高精度的测控技术&#xff0c;有效提升内燃机的测试精度和数据处理能力。 项目背景 随着内燃机技术的发展&#xff0c;对其气道性能的精准测量需求日益增加。该系统通…

LabVIEW将TXT文本转换为CSV格式(多行多列)

在LabVIEW中&#xff0c;将TXT格式的文本文件内容转换为Excel格式&#xff08;即CSV文件&#xff09;是一项常见的数据处理任务&#xff0c;适用于将以制表符、空格或其他分隔符分隔的数据格式化为可用于电子表格分析的形式。以下是将TXT文件转换为Excel&#xff08;CSV&#x…

第二节——计算机网络(四)物理层

车载以太网采用差分双绞线车载以太网并未指定特定的连接器&#xff0c;连接方式更为灵活小巧&#xff0c;能够大大减轻线束重量。传统以太网一般使用RJ45连接器连接。车载以太网物理层需满足车载环境下更为严格的EMC要求&#xff0c;100BASE-T1\1000BASE-T1对于非屏蔽双绞线的传…

Next.js - app 路由器之动态路由与并行路由

#题引&#xff1a;我认为跟着官方文档学习不会走歪路 动态路由的约定 (1) 通过将文件夹名称用方括号括起来可以创建动态段&#xff1a;[folderName] 动态段会作为 params 属性传递给 layout、page、route 和 generateMetadata 函数。 例如&#xff0c;一个博客可以包含以下…

电脑还原重置Windows系统不同操作模式

电脑有问题,遇事不决就重启,一切都不是问题!是真的这样吗。其实不然,主机系统重启确实可以自动修复一些文件错误,或者是设置问题,但是,当你由于安装了错误的驱动或者中毒严重,亦或是蓝屏,那么重启这个方子可能就治不了你的电脑了。 那么,除了当主机出现异常故障现象…

基于Java Springboot蛋糕订购小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术&#xff1a;Html、Css、Js、Vue、Element-ui 数据库&#xff1a;MySQL 后端技术&#xff1a;Java、Spring Boot、MyBatis 三、运行环境 开发工具&#xff1a;IDEA/eclipse 微信…

git 上传代码时报错

在上传代码时&#xff0c;显示无法上传 PS E:\JavaWeb\vue3-project> git push To https://gitee.com/evening-breeze-2003/vue3.git! [rejected] master -> master (non-fast-forward) error: failed to push some refs to https://gitee.com/evening-breeze-20…

【学习笔记】GoFrame框架

文章目录 什么是GoFrame框架 and 安装项目初始化 什么是GoFrame框架 and 安装 我也是用过许多框架的程序员了&#xff0c;但是GoFrame框架确实是没听说过&#xff0c;今天就来学习一下。 首先是我们熟悉的选手自我介绍环节 GoFrame 是一款模块化、高性能、企业级的 Go 语言基…

探索温度计的数字化设计:一个可视化温度数据的Web图表案例

随着科技的发展&#xff0c;数据可视化在各个领域中的应用越来越广泛。在温度监控和展示方面&#xff0c;传统的温度计已逐渐被数字化温度计所取代。本文将介绍一个使用Echarts库创建的温度计Web图表&#xff0c;该图表通过动态数据可视化展示了温度值&#xff0c;并通过渐变色…

Linq(C#)之对数据分组

分组是指将数据分到不同的组&#xff0c;使每组中的元素拥有公共的属性。 下图演示了对字符序列进行分组的结果。 每个组的键是字符。 1、group by List<int> numbers [35, 44, 200, 84, 3987, 4, 199, 329, 446, 208];IEnumerable<IGrouping<int, int>> q…

【字体】Fire Code连字效果开启

Vscode 开启方法 1、设置字体Fire Code 放在最前面的即可&#xff1a; 2、启用连字 继续往下找到“在 settings.json 中编辑”&#xff0c;然后设置"editor.fontLigatures": true &#xff1a; 保存即可。 Sublime 开启方法 设置中设置字体后&#xff0c;启…

区块链学习笔记(2)--区块链的交易模型part1

模型基础 区块链的tx分为两种模型&#xff0c;分别是比特币为代表的UTXO&#xff08;Unspent Transaction Output&#xff09;模型&#xff0c;和以太坊为代表的Account模型。前者适用于货币记账&#xff0c;后者适用于链上应用。 UTXO模型 类似于现金的交易模型 一个tx包含…

ComfyUI节点安装笔记

AI高速发展&#xff0c;版本更新相当快&#xff08;11月25日才安装的版本v.0.3.4&#xff0c;27日版本就已经更新到v.0.3.5了&#xff0c;当然不是说所有的版本更新都需要全部全新安装&#xff09;&#xff0c;在遇到问题&#xff0c;而不能通过update来更新各个节点解决时&…

数据库期末复习题库

1. Mysql日志功能有哪些? 记录日常操作和错误信息&#xff0c;以便了解Mysql数据库的运行情况&#xff0c;日常操作&#xff0c;错误信息和进行相关的优化。 2. 数据库有哪些备份方法 完全备份&#xff1a;全部都备份一遍表备份&#xff1a;只提取数据库中的数据&#xff0…

【经典论文阅读】Transformer(多头注意力 编码器-解码器)

Transformer attention is all you need 摘要 完全舍弃循环 recurrence 和卷积 convolutions 只依赖于attention mechanisms 【1】Introduction 完全通过注意力机制&#xff0c;draw global dependencies between input and output 【2】Background 1&#xff1a;self-…

理解字母形状,从而获得含义

英文字母&#xff0c;都是象形符号&#xff0c;所以&#xff0c;理解其形象&#xff0c;所象之形&#xff0c;是一项重要的工作&#xff0c;和非常有意义事情。也是我们快速记住大量单词&#xff0c;将单词从底层逻辑开始理清&#xff0c;融会贯通扩展记忆容量的重要办法之一。…

CA系统(file.h---申请认证的处理)

#pragma once #ifndef FILEMANAGER_H #define FILEMANAGER_H #include <string> namespace F_ile {// 读取文件&#xff0c;返回文件内容bool readFilename(const std::string& filePath);bool readFilePubilcpath(const std::string& filePath);bool getNameFro…

Linux Shell 脚本题目集(2)

1、使用 case 语句根据用户输入的分数&#xff08;0-100&#xff09;输出相应的成绩等级&#xff08;A, B, C, D&#xff09;。 #! /bin/bashread -p "请输入您的分数&#xff08;0-100&#xff09;&#xff1a;" score# 验证输入是否为数字且在0到100之间 if ! [[ …