Python基本数据类型之散列类型详解

前言:

python的基本数据类型可以分为三类:数值类型、序列类型、散列类型,本文主要介绍散列类型。

一、散列类型

散列类型:内部元素无序,不能通过下标取值

1)字典(dict):用 {} 花括号表示,每一个元素包含键(key)和值(value),key是一般是唯一的,如果重复最后的一个键值对会替换前面的,value不需要唯一。

2)集合(set):用 {} 花括号表示,存放一个个元素,可以是任意类型,但元素不允许重复。

注意:

d = {} 定义的是一个空字典

s = set() 定义的是一个空集合

二、字典dict

1.定义

1)用 {} 花括号表示,每一个元素包含键(key)和值(value),key是一般是唯一的,如果重复最后的一个键值对会替换前面的,value不需要唯一。

2)value可以取任何数据类型,但key是不可变的,新增键值对后,key不可以修改,单value可以修改。

2.字典的常用方法
1)增

dic[key]=value 无则创建,若已有对应的key存在则修改该键值对的value
update():将一个字典的所有元素更新到另一个字典中 (简单来说,就是添加多个元素)
routeros

# 字典 {key:value, key:value}   键/值对形式
# key是唯一的,是不可变类型数据
dic1 = {'name':'张三','age':18,'gender':'男'}
dic2 = {'a':11,'b':22}dic1['city'] = '广州'   # 新增键值对
print(dic1)dic1['city'] = '上海'   # 根据key修改值
print(dic1)# updata():添加多个键值对(将一个字典更新到一个字典中)
dic1.update(dic2)
print(dic1)
dic2.update({'c': 33, 'd': 44})
print(dic2)

2)删

pop():参数为字典的键(key)
popitem() :删除最后添加的键值对
clear():清空字典中的所有键值对
关腱字del:del dic[key]

routeros

dic1 = {'name':'张三','age':18,'gender':'男','city':'广州'}# pop():删除,需要传入一个键(key)
dic1.pop('gender')
print(dic1)# popitem():不需要传参,删除字典中最后添加进来的一个键值对
dic1.popitem()
print(dic1)# 关键字del
del dic1['age']
print(dic1)# clear():清除字典中的所有键值对
dic1.clear()
print(dic1)

运行结果:

awk

C:\software\python\python.exe D:/myworkspace/test/test/test.py
{'name': '张三', 'age': 18, 'city': '广州'}
{'name': '张三', 'age': 18}
{'name': '张三'}
{}Process finished with exit code 0

3)改

dic[key]=value 通过键去修改值,在第一点中已经举出例子

4)查

get():获取键对应的值,但key不存在时不会报惜,会打印None
keys():获取所有的键,可以用list将结果转成列表
values():获取所有的值,可以用list将结果转换成列表
itmes(): 获取所有的键值对,可以用list将结果转换成列表,列表中每个键值对组成一个元组

routeros

dic1 = {'name':'张三','age':18,'gender':'男'}# get():获取键对应的值
print(dic1.get('name'))
print('这是不存在的键值对:{}'.format(dic1.get('city')))# keys():返回字典中所有的键
print(dic1.keys())dic_key = dic1.keys()
print(list(dic_key))  # 通过list()把键以列表的形式输出# values():返回字典中所有的值
print(dic1.values())
dic_value = dic1.keys()
print(list(dic_value))  # 通过list()把键以列表的形式输出# items:返回字典中所有的键值对,每一个键值对都会打包成元组(key,value)
print(dic1.items())
dic_item = dic1.items()
print(list(dic_item))

运行结果:

stylus

C:\software\python\python.exe D:/myworkspace/test/test/test.py
张三
这是不存在的键值对:None
dict_keys(['name', 'age', 'gender'])
['name', 'age', 'gender']
dict_values(['张三', 18, '男'])
['name', 'age', 'gender']
dict_items([('name', '张三'), ('age', 18), ('gender', '男')])
[('name', '张三'), ('age', 18), ('gender', '男')]Process finished with exit code 0

三、集合set

1.定义

集合是由不重复元素组成的无序的集,常用来消除重复元素

注意:要创建一个空集合只能用set(),不能用用{},因为后者创建的是一个空字典

2.集合的常用方法

集合的方法比较简单,常用增加元素add,删除元素pop()、remove()

routeros

set1 = {1, 'python', 'a', 2, 'a', 3, 4, 'python', 5, 6}
print(set1)  # 去掉重复的元素li = [79, 1, 89, 3, 90, 5, 89, 321, 66, 7]
li = list(set(li))  # 利用set()转换成集合去重
print(li)dic = {}  # 表示空字典, 空集合用set()
set1 = set()
print(type(dic), type(set1))    # type()是python内置函数,用于查看数据类型set1.add(1)
set1.add(2)
print(set1)
set1.pop()
print(set1)
set1.remove(2)
print(set1)

运行结果:

awk

C:\software\python\python.exe D:/myworkspace/test/test/test.py
{1, 2, 3, 4, 5, 6, 'python', 'a'}
[1, 321, 3, 66, 5, 7, 79, 89, 90]
<class 'dict'> <class 'set'>
{1, 2}
{2}
set()Process finished with exit code 0

一、散列类型
二、字典dict
1.定义
2.字典的常用方法
1)增
2)删
3)改
4)查
三、集合set
1.定义
2.集合的常用方法

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

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

相关文章

vscode中使用nvm安装node及创建vue3项目

使用vscode创建vue3项目 1。安装nvm Releases coreybutler/nvm-windows (github.com) 打开下载nvm.exe并安装 2。安装node.js 用管理员身份打开vscode&#xff0c;新建终端选择git bash&#xff0c;运行nvm list available选择lts版本&#xff0c;比如&#xff1a;16.16.…

【DIY】电子制作创意作品:有趣的激光竖琴

在上海世博会的伊朗馆&#xff0c;我看到了一架没有琴弦的竖琴&#xff0c;那是众多参观者公认的伊朗馆里最有趣的展品&#xff01;参观者只要伸手穿过那架通体黑色的竖琴&#xff0c;音调就会被“奏响”。没有琴弦怎么奏响&#xff1f;工作人员为我们揭示了秘密——他按了一下…

Spring Boot搭建入门

Spring Boot简介 Spring Boot是对Spring进行的高度封装&#xff0c;是对Spring应用开发的高度简化版&#xff0c;是Spring技术栈的综合整合&#xff0c;是J2EE的一站式解决方案。想要精通Spring Boot的前提是需要熟悉Spring整套技术栈原理与内容。 Spring Boot的优点&#xf…

背景虚拟化组件,透明模糊

问题当我们背景想要进行透明或者模糊处理的时候我们一般我们可以以通过 rgba 的第四个位置可以进行透明处理&#xff0c;但是模糊不行 需要懂得知识点&#xff0c;定位&#xff0c;属性加强&#xff0c;结构化&#xff0c;react 插槽 话不多说上代码 子组件 import logincs…

RN的父传子和子传父及方法调用(函数式组件)

在React Native中&#xff0c;父组件向子组件传递数据通常通过props实现&#xff0c;而子组件向父组件传递数据则通常通过回调函数实现。下面是一个简单的示例&#xff0c;演示了父组件向子组件传递数据和子组件向父组件传递数据的方法&#xff1a; 父传子 父组件 // ParentC…

指针篇章-(冒泡排序详解)

冒泡排序 图解 tmp图解 内容图解 每次循环的次数减少 for循环详解 冒泡排序是一种简单的排序算法&#xff0c;它重复地遍历要排序的数列&#xff0c; 一次比较两个元素&#xff0c;如果它们的顺序错误就把它们交换过来。 遍历数列的工作是重复地进行直到没有再需要交换&…

Double和Float类

Double类 功能&#xff1a;实现对Double基本型数据的类包 构造方法&#xff1a; (double num) double Value()方法&#xff1a;返回对象中的double型数据。 Float类 功能&#xff1a;实现对float基本型数据的类包装。 构造方法&#xff1a; (float num) Float Value()方法…

云计算项目九:K8S安装

K8S安装 Kube-master安装 按照如下配置准备云主机 防火墙相关配置&#xff1a;禁用selinux&#xff0c;禁用swap&#xff0c;且在firewalld-*。上传kubernetes.zip 到跳板机 配置yum仓库&#xff08;跳板机&#xff09; 跳板机主机配置k8s软件源服务端 [rootjs ~]# yum -y…

设计模式-行为型模式-备忘录模式

备忘录&#xff08;Memento&#xff09;&#xff1a;在不破坏封装性的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。[DP] //首先&#xff0c;我们定义Originator类&#xff0c;它有一个状态和…

C++初阶:类与对象(中篇)

目录 2. 类的六个默认成员函数2.1 构造函数2.1.1 构造函数的定义方式 2.2 析构函数2.2.1 析构函数定义方式 2.3拷贝构造函数2.3.1 拷贝构造函数的定义方式2.3.2 深拷贝与浅拷贝 2.4 赋值运算符的重载2.4.1 运算符重载2.4.2 运算符的重载的定义方式2.4.3 默认成员函数&#xff1…

HTML使用

文章目录 一、简介二、HTML快速入门三、基础标签四、图片、音频、视频标签五、超链接标签六、列表标签七、表格标签八、布局标签九、表单标签十、表单向标签 一、简介 二、HTML快速入门 ​ <html><head><title>你好</title></head><body>再…

功能强大使用简单的截图/贴图工具,PixPin

一、下载链接 PixPin 截图/贴图/长截图/文字识别/标注 | PixPin 截图/贴图/长截图/文字识别/标注 (pixpinapp.com) 二、功能 截图/贴图/长截图/文字识别/标注 三、安装教程 根据提示安装即可&#xff1a; 四、快捷键 1.软件自带快捷键&#xff08;右击PixPin查看 &#xff09…

spring 技术100问?

什么是Spring框架的主要优点&#xff1f;Spring框架支持哪些模块或组件&#xff1f;什么是Spring Core模块&#xff1f;请解释Spring框架中的BeanFactory和ApplicationContext的区别。如何自定义Spring Bean的初始化和销毁方法&#xff1f;什么是Spring的工厂方法设计模式应用&…

微信小程序-入门

1.下载和安装Npm&#xff1a;Npm https://docs.npmjs.com/downloading-and-installing-node-js-and-npm 或者 https://nodejs.org/en/download/ 未安装npm 提示 以下以安装node安装包为例 按任意键继续 安装完成后 2. 下载和安装小程序开发工具 &#xff1a;https:/…

安信可IDE(AiThinker_IDE)编译ESP8266工程方法

0 工具准备 AiThinker_IDE.exe ESP8266工程源码 1 安信可IDE&#xff08;AiThinker_IDE&#xff09;编译ESP8266工程方法 1.1 解压ESP8266工程文件夹 我们这里使用的是NON-OS_SDK&#xff0c;将NON-OS_SDK中的1_UART文件夹解压到工作目录即可 我这里解压到了桌面&#xff0c…

T1 小美的数组询问(15分) - 美团编程题 题解

考试平台&#xff1a; 牛客网 题目类型&#xff1a; 30道单选题&#xff08;60分&#xff09; 2 道编程题 &#xff08;15分 25分&#xff09; 考试时间&#xff1a; 2024-03-09 &#xff08;两小时&#xff09; 题目描述 小美拿到了一个由正整数组成的数组&#xff0c;但其中…

Draco点云压缩测试

ref&#xff1a;https://github.com/google/dracohttps://codelabs.developers.google.com/codelabs/draco-3d/index.html#6 Draco Draco 是一个用于编码压缩和解压缩 3D 几何网格和点云的库&#xff0c;从而改进 3D 图形的存储和传输该代码支持压缩点、连接信息、纹理坐标、颜…

NTFS安全权限

NTFS是新技术文件系统&#xff08;New Technology File System&#xff09;的缩写&#xff0c;是一种用于Windows操作系统的文件系统。NTFS提供了高级的功能和性能&#xff0c;包括文件和目录的权限控制、加密、压缩以及日志等。它被广泛应用于Windows NT、Windows 2000、Windo…

算法训练营day44(补),动态规划12

func max(a, b int) int { if a > b { return a } return b } //300. 最长递增子序列 func lengthOfLIS(nums []int) int { dp : make([]int, len(nums)) for i : range dp { dp[i] 1 } for i : 1; i < len(nums); i { for j : 0; j < i; j { //收集所有子序列 if…

linux中git暂存,提交,上传到github

安装git apt-get updateapt-get install git设置 git config --global user.name "XXX"git config --global user.email "xxxxxx.com"生成ssh key ssh-keygen -t rsa查看id_rsa.pub cat ~/.ssh/id_rsa.pub将id_rsa.pub内容设置到github中 测试是否连接…