Python | 数据类型之元组和字典

news2024/10/9 10:26:18


知识目录

    • 一、元组(tuple)
        • 1.1 元组的创建
        • 1.2 访问和修改元组
        • 1.3 内置函数
    • 二、字典(dict)
        • 2.1 字典的创建
        • 2.2 访问和修改字典
        • 2.3 字典键的特性
        • 2.4 函数与方法

一、元组(tuple)

Python 的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

1.1 元组的创建

tup1 = ()  # 创建一个空元组
print(type(tup1))

tup2 = (2)  # 创建一个只有一个元素的元组时,需要在元素后添加逗号,否则python认为是int类型
print(tup2)
print(type(tup2))

tup3 = (2,)
print(tup3)
print(type(tup3))  # 元组

tup4 = 1, 2, 3  # 任意无符号的对象,以逗号隔开,默认为元组
print(type(tup4))

1.2 访问和修改元组

tup1 = ("com", "carry", 12, 0)
print(tup1[1]) # 访问第二个元素
print(tup1[:2])  # 从第一个元素截取到第二个元素
print(tup1[1:3])  # 从第2个元素截取到第3个元素
print(tup1[1:])  # 从第一个元素开始截取到最后

# 元组中的元素值不可以修改,但是我们可以对元组进行连接组合
tup1 = (1,2,"Jack")
tup2 = ("marry",232)
tup3 = tup1+tup2
print(tup3) # 元组连接

# 元组中的元素不允许删除
tup4 = ("work",233)
print(tup4)
del tup4
# print(tup4) # 报错

1.3 内置函数

二、字典(dict)

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中,类似于JSON

2.1 字典的创建

dict1 = {"name": "xiaoguo", "pwd": 123}
print(dict1)
print(type(dict1))

2.2 访问和修改字典

# 1.访问字典dict的值
print(dict1.get("name"))  # 通过get()方法,如果没有这个键,返回None
print(dict1["name"])  # 通过[键],如果没有这个键,就会报错

# 向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对

# 2.修改字典
dict1["name"] = "XiaoGuo" # 修改
dict1["id"] = 1 # 当键不存在时赋值,就是添加
print(dict1)

# 4.删除字典元素
del dict1["id"] #删除id
print(dict1)
dict1.clear() # 清空所有键值对,使字典变成空
print(dict1)
del dict1 # 删除字典
# print(dict1) 报错

2.3 字典键的特性

(1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,仅后一个值会被记住。

(2)键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行。

dict2 = {"name": 123, "name": 321}
print(dict2["name"])  # 只会记住后面的值
# 字典的键必须是不可变的,可以是数字,字符串,元组,但是不能是字典
dict3 = {1: 1, "name": "xiaoguo", (1,): 3}
print(dict3[(1,)])

2.4 函数与方法

print("字典是:%s"%str(dict3))




dict1 = {"name": "xiaoguo", "pwd": 123}
dict2 = {"name": "xiaoguo", "pwd": 123}

# 1.clear
print("clear之前:%s" % str(dict1))
dict1.clear()
print("clear之后:%s" % str(dict1))

# 2. copy()
dict2_1 = dict2.copy()
print("copy自dict2:%s" % str(dict2_1))

# 3.fromkeys
print("不设置val,默认值为None:%s" % (dict.fromkeys(dict2)))
print("设置val,默认值为10:%s" % (dict.fromkeys(dict2, 10)))

# 4.get()
print(dict2.get("names"))  # 如果字典中没有这个键,返回None

# 5.has_key->python3中这个方法被contains替代
print(dict2.__contains__("name"))

# 6.items() items() 方法把字典中每对 key 和 value 组成一个元组,并把这些元组放在列表中返回
print(dict2.items())
for key, value in dict2.items():
    print("key:%s,value:%s" % (key, value))

dict1 = {"na":1,"nb":2}
dict2 = {"nc":3}

# 7.keys()
print("所有键:%s"%str(dict1.keys()))

# 8.setdefault # 设置为None,不是default
print("设置键:%s"%str(dict1.setdefault("names")))
print(dict1)

# 9.update # 添加/修改
dict1.update(dict2)
print("添加键值:%s"%str(dict1))

# 10.values
print("所有值:%s"%str(dict1.values()))

# 11. pop()
print(dict1.pop("na"))

# 12.popitem()
print(dict1.popitem())
print(dict1)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kubernetes-dashboard 实现 http 访问以及免 token 登录

文章目录[toc]下载官方 yaml 文件修改 yaml 文件修改 service 端口修改 clusterrolebinding修改 deployment 内容修改探针检测修改镜像拉取策略修改容器端口关闭 token 登录增加 ingress完整版 yaml下载官方 yaml 文件 最后有完整版的 yaml 文件,不想看细节的话&am…

苹果中的这些小技巧,你知道吗

技巧一:iPhone镜像 觉得手机屏幕太小看电影玩游戏不爽怎么办?投屏功能帮我们解决了问题,使用方法也很简单。打开控制中心,点击投屏,选择设备,连接投屏。这里需要注意的是,手机和连接的设备必须在…

【MIKE水动力】MIKE11基本原理(上)

Mike11软件包由水动力、对流~扩散、水质、降雨~径流、洪水预报等模块组成,核心模块为水动力模块。Mike11水动力模块采用6点Abbott~Ionescu有限差分格式对圣维南方程组求解。 一、圣维南方程组 1、基本要素与假设条件 Mike11模型…

开源流程引擎activiti、flowable、camunda选哪个好?

市场上比较有名的开源流程引擎有osworkflow、jbpm、activiti、flowable、camunda。其中:Jbpm4、Activiti、Flowable、camunda四个框架同宗同源,祖先都是Jbpm4,开发者只要用过其中一个框架,基本上就会用其它三个。低代码平台、办公…

IO流概念、FileWriter类及FileReader类详解

目录 IO流概述和分类 ​编辑FileWriter写数据 FileWriter写数据的方法 FileWriter写数据常见问题 FileReader读数据 IO流概述和分类 IO流用来处理设备之间的数据传输–文件复制,上传文件和下载文件 IO流分类–输出流——FileWriter –输入流——FileReader 图式详解&am…

< 每日算法 - Javascript解析: 交通枢纽 >

每日算法 - JavaScript解析:交通枢纽一、任务描述:》 示例一:》示例二二、题意解析拓展知识三、解决方案:往期内容 💨一、任务描述: 为了缓解「力扣嘉年华」期间的人流压力,组委会在活动期间开…

谷歌优化排名怎么做?Google SEO怎么优化?

本文主要分享关于Google自然排名优化中的一些方法和技巧,让你更快的做好谷歌排名。 本文由光算创作,有可能会被修改和剽窃,我们佛系对待这种行为吧。 谷歌优化排名怎么做?Google SEO怎么优化? 答案是:创…

CMOS器件与TTL器件CMOS电平与TTL电平

常用的数字芯片,按制造工艺主要分为TTL器件和CMOS器件。TTL器件是指其内部主要逻辑单元为双极性晶体管,CMOS器件是指其内部的主要逻辑单元为MOS管。现在绝大部分数字芯片使用的工艺都是CMOS工艺,在一些比较老的74系列芯片中还使用的是TTL工艺…

51单片机最强模块化封装(1)

文章目录前言一、sys文件创建和路径添加1.创建文件夹添加文件夹路径二、sys文件编写1.sys.h2.sys.c三、模块化的测试总结前言 今天将为大家讲解51单片机的模块化封装,为什么要讲这个模块化封装呢?模块化封装将提高我们代码的可移植性和可复用性&#xf…

力扣刷题记录——1002. 查找共用字符、905. 按奇偶排序数组、 977. 有序数组的平方

本专栏主要记录力扣的刷题记录,备战蓝桥杯,供复盘和优化算法使用,也希望给大家带来帮助,博主是算法小白,希望各位大佬不要见笑,今天要分享的是——《力扣刷题记录——1002. 查找共用字符、905. 按奇偶排序数…

服务器被ddos攻击的处置策略

如果您的服务器遭到了DDoS攻击,以下是一些可以采取的措施:使用防火墙和安全组进行限制:限制服务器的流量以防止进一步的攻击。升级服务器资源:为了应对更高的流量,可以升级服务器的内存,处理器等资源。安装…

GraspNet-1Billion

目录 .1 intro .2 Dataset 2.1 data collection: 2.2 data annotation 2.3 evaluation .3 backbone 3.1 Training and Inference 3.2 Experiment References .1 intro contribution: 一个具有统一评价体系的大规模抓取姿态检测数据集 评估系统通过解析计…

顶会论文 | 虚拟网络探测技术的探索与实践

作者:吕彪 阿里云网络齐天负责人 云网络由物理网络和虚拟网络共同组成,两者都会影响网络性能。过去的研究主要集中于解决物理网络探测,而在虚拟网络探测领域的相应研究则较少。本文将为大家分享一种专为大规模多租户虚拟网络设计的主动探测系…

SAP进阶技术分享一:ABAP增强(1)

一:基于源代码的增强 1.定义 源代码增强以子程序形式发布,可以用PERFORM调用这些子程序,发布的时候是空的,提供一个空代码的子过程,用户可以添加自己的代码。 2.特点 需要修改sap的标准代码。   屏幕增强以客户屏幕…

opencv轮廓相关函数

查找轮廓contours, hierarchy cv2.findContours(image,mode,method)参数:image:寻找轮廓所使用的图像。(寻找过程不修改此图像)mode:模式。cv2.RETR_EXTERNAL只检测外轮廓;cv2.RETR_LIST检测的轮廓不建立等…

【Qt】10.Linux下,Qt连接云MySQL数据库

目录 下载MySQL压缩包 配置MySQL Qt下编译MySQL 测试 下载MySQL压缩包 网址: MySQL :: Download MySQL Community Server (Archived Versions)https://downloads.mysql.com/archives/community/ 我为了跟云服务器上的MySQL版本一致,减少不必要的麻…

带你手撕排序算法

文章目录前言一、排序的相关概念二、插入排序1.直接插入(1)算法思想(2)算法讲解(3)代码及解析(4)代码总结2.希尔排序( 缩小增量排序 )(1)算法思想&#xff08…

maxcomputer的分区表相关操作

– 查看xsxw(学生行为表定义) desc xsxw; – 查看xsxw1(学生行为表定义) desc xsxw1; – 上面的两张表是通过ddl语句创建的分区表 – 创建ddl语句如下 – CREATE TABLE IF NOT EXISTS xsxw1( – xwsj STRING COMMENT ‘行为时间’, – xh STRING COMMENT ‘学号’, – xwdd ST…

基于OptiSystem的LD\LED\EDFA仿真分析

1、客户需求: (1) 仿真LD、LED直接调制系统的输出光谱,观察系统输出性能。 (2) 采用EDFA的光纤通信系统,实现对多路光波信号的放大,实现200km、40Gbit/s的传输。用仿真软件搭建一个…

关系数据库——关系代数

文章目录一、传统的集合运算二、专门的关系运算1.选择(restriction)2.投影(Projection)3.连接(join)1)等值连接2)自然连接4.除(Division)一、传统的集合运算 …