Python基础知识学习总结(五)

news2024/11/12 11:38:14

一. 字典

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

字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号( , )分割,整个字典包括在花括号 {} 中 。

dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

tinydict = {'name': '潘家辉大佬', 'grade': 666, 'url': '能不能不要再卷我了!!!'}
print(tinydict)

1> 空字典

a. 使用大括号创建字典。

emptyDict = {}     
# 打印字典  
print(emptyDict)     
# 查看字典的数量  
print("Length:", len(emptyDict))     
# 查看类型  
print(type(emptyDict))

b. 使用内建函数 dict() 创建字典。

emptyDict = dict()   
# 打印字典  
print(emptyDict)    
# 查看字典的数量  
print("Length:",len(emptyDict))    
# 查看类型  
print(type(emptyDict))

2> 读取字典里的值

把相应的键放入到方括号中。

tinydict = {'Name': '潘家辉', 'Age': 555, 'Class': 'NumberOne'}
print("tinydict['Name']: ", tinydict['Name'])
print("tinydict['Age']: ", tinydict['Age'])

如果用字典里没有的键访问数据,会输出错误。

3> 修改字典里的值

tinydict = {'Name': '潘家辉', 'Age': 666, 'Class': 'NumberOne'}
tinydict['Age'] = 999 # 更新 Age 
tinydict['School'] = "m大学" # 添加信息 
print("tinydict['Age']: ", tinydict['Age'])
print("tinydict['School']: ", tinydict['School'])

可以出Age从666变成888,多添加了个键与值。

4> 删除字典元素

能删单一的元素也能清空字典.clear(),清空只需一项操作,显式删除一个键或字典用del命令典。

tinydict = {'Name': '潘家辉', 'Age': 666, 'Class': 'NumberOne'}
del tinydict['Name'] # 删除键 'Name' 
print("tinydict['Age']: ", tinydict['Age'])
tinydict.clear() # 清空字典 
print("tinydict['Age']: ", tinydict['Age'])
del tinydict # 删除字典
print("tinydict['Age']: ", tinydict['Age'])

5> 字典键的特性

字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。

两个重要的点需要记住:

  1. 不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。
  2. 键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行。

6> 字典内置函数与方法

a. Python字典包含了以下内置函数:
序号函数及描述
1len(dict) 计算字典元素个数,即键的总数。
2str(dict) 输出字典,可以打印的字符串表示。
3type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。
b. Python字典包含了以下内置方法:
序号函数及描述
1[dict.clear()] 删除字典内所有元素
2[dict.copy()] 返回一个字典的浅复制
3[dict.fromkeys()]创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
4[dict.get(key, default=None)] 返回指定键的值,如果键不在字典中返回 default 设置的默认值
5[key in dict] 如果键在字典dict里返回true,否则返回false
6[dict.items()] 以列表返回一个视图对象
7[dict.keys()]返回一个视图对象
8[dict.setdefault(key, default=None)] 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
9[dict.update(dict2)]把字典dict2的键/值对更新到dict里
10[dict.values()] 返回一个视图对象
11[pop(key[,default])]l) 删除字典 key(键)所对应的值,返回被删除的值。
12[popitem()] 返回并删除字典中的最后一对键和值。

二. 集合(Set)

集合(set)是一个无序的不重复元素序列。

可以使用大括号 { } 或者 set() 函数创建集合

注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

# 可以理解为这个是一个没有键,只有值的字典,也叫做集合。
fruit = {'潘家辉', '大佬', '你', '真', '棒!'}
print(fruit)

# set()集合函数
a = set('abcccd')
print(a)
b = set('ad')
c = a-b 
print(c)

可以看出输出结果不是固定的,是个无序的不重复元素序列。

  1. a-b(集合a中包含而集合b中不包含的元素)
  2. a|b(集合a或b中包含的所有元素)
  3. a&b(集合a和b中都包含了的元素)
  4. a^b(不同时包含于a和b的元素)

1> 添加元素

  1. add()函数,将元素添加到集合中,如果元素已存在,则不进行任何操作。
  2. update()函数,添加元素,且参数可以是列表,元组,字典等。
student = set(("潘", "鸽", "真"))
student.add("强")
print(student)
student.update({1,2,3})
print(student)

2> 删除元素

  1. remove()函数,将元素从集合中移除,如果元素不存在,则会发生错误。
  2. discard()函数,将元素从集合中移除,且如果元素不存在,不会发生错误。
  3. pop()函数,将集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除。
student = set(("潘", "鸽", "真"))
student.remove("强")
print(student)
student.discard("嘻嘻")
print(student)
student.pop()
print(student)

student = set(("潘", "鸽", "真"))
student.remove("鸽")
print(student)
student.discard("嘻嘻")
print(student)
student.pop()
print(student)

3> 计算集合元素个数

student = set(("潘", "鸽", "真", "强"))
print(len(student))

4> 清空集合

student = set(("潘", "鸽", "真", "强"))
print(student)
student.clear()
print(student)

5> 判断元素是否在集合中存在

student = set(("潘", "鸽", "真", "强"))
print("潘" in student)
print("h" in student)

6> 集合内置方法完整列表

方法描述
[add()]为集合添加元素
[clear()]移除集合中的所有元素
[copy()]拷贝一个集合
[difference()]返回多个集合的差集
[difference_update()]移除集合中的元素,该元素在指定的集合也存在。
[discard()]删除集合中指定的元素
[intersection()]返回集合的交集
[intersection_update()]返回集合的交集。
[isdisjoint()]判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
[issubset()]判断指定集合是否为该方法参数集合的子集。
[issuperset()]判断该方法的参数集合是否为指定集合的子集
[pop()]随机移除元素
[remove()]移除指定元素
[symmetric_difference()]返回两个集合中不重复的元素集合。
[symmetric_difference_update()]symmetric_difference_update.html)移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。
[union()]返回两个集合的并集
[update()]给集合添加元素

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

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

相关文章

CompletableFuture-应用

可以看到CompletableFuture实现了CompletionStage 和Future的两个接口。CompletionStage提供了任务之间的衔接能力,而Future则是经常用于阻塞获取结果。 CompletableFuture 的内部使用了基于 ForkJoinPool 的线程池,这种线程池可以高效地调度和执行任务…

数据结构与算法--交换排序与归并排序

文章目录 回顾提要冒泡排序冒泡排序的过程冒泡排序的实现冒泡排序算法评价 快速排序快速排序的划分方法快速排序的过程快速排序的实现快速排序算法性能分析快速排序的改进 归并排序二路归并排序合并两个有序表归并排序示例归并排序算法性能分析 各种内排序方法的比较各种内排序…

SOCKS5代理UDP转发:探秘网络世界的隐形传送带

在这个信息爆炸的时代,网络已经成为我们生活中不可或缺的一部分。然而,网络世界中也充满了各种问题和挑战,比如隐私保护、数据传输的安全性等。今天,我们就来聊聊一种神奇的网络工具——SOCKS5代理,特别是它在UDP转发中…

在撰写跨学科论文时,如何平衡不同研究领域的篇幅和深度?

在学术界,跨学科研究因其能够综合不同领域的知识和方法而受到重视。然而,如何在一篇论文中平衡不同学科的篇幅和深度,是一个常见的挑战。本文将探讨一些有效的策略,帮助你在撰写跨学科论文时,既能展现每个领域的深度&a…

数字产业生态圈如何推动产业加速升级?

在数字化浪潮的推动下,数字产业生态圈逐渐成为产业升级的重要载体。它不仅汇聚了技术创新的源头活水,更通过以下几大途径,为产业注入强劲动力: 1、资源整合:数字产业生态圈将政府、企业、科研机构和高校等多方资源整合…

一个案例讲清5Why分析法,分分钟Get!

探究问题深处的“ 5 why究竟法”,这可不是普通的连连问,而是由丰田创始人丰田佐吉精心锻造的问题挖掘秘籍。简而言之,就是当你遇到一个谜题,连环出击五个“为啥呢?”,一步步揭秘真相的核心。想象一下&#…

C++策略模式Strategy

组件协作– —策略模式strategy (运行时可以切换, 运行时多态调用, 不同于if else,(bad smell、还占用缓存) 只要有if else就应该要想strategy重构 但是如果if else绝对不变的情况,也可以用 原本…

Opencv学习-直方图比较

由于图像的直方图表示图像像素灰度值的统计特性,因此可以通过两幅图像的直方图特性比较 两幅图像的相似程度。从一定程度上来讲,虽然两幅图像的直方图分布相似不代表两幅图像相似,但是两幅图像相似则两幅图像的直方图分布一定相似。例如&…

Openlayer - vue中加载天地图(入门篇)

在vue中安装openlayers npm i --save ol这里说的vue是基于脚手架构建的。 新建个页面&#xff0c;也就是vue文件&#xff0c;配置好路由。接着 就是可以直接放入我的代码运行显示了。 vue利用openlayers加载天地图和高德地图 <template><div class"wrapper&quo…

集团数字化转型方(五)

集团数字化转型方案通过全面整合人工智能&#xff08;AI&#xff09;、大数据分析、云计算和物联网&#xff08;IoT&#xff09;等前沿技术&#xff0c;构建了一个高度智能化的业务平台&#xff0c;从而实现业务流程的自动化、数据驱动的决策支持、精准的市场预测、以及个性化的…

web常见漏洞——XSS

xss 1、xss概述2、环境工具3、反射型xss3.1、利用反射型xss获取cookie 4、DOM型xss4.1、第一关4.2、第二关4.3、第三关4.4、第四关4.5、第五关4.6、第六关4.7、第七关4.8、第八关 5、存储型xss 1、xss概述 XSS全称跨站脚本(Cross Site Scripting)&#xff0c;为避免与层叠样式表…

视频孪生技术在智慧水利(水务)场景中的典型应用展示

一、智慧水利建设规划 根据水利部编制《“十四五”智慧水利建设规划》&#xff0c;建设数字孪生流域、“2N”水利智能业务应用体系、安全可控水利网络安全防护体系、优化健全水利网信保障体系&#xff0c;建成七大江河数字孪生流域&#xff0c;推进水利工程智能化改造&#xf…

C程序设计——常量

前面讲了变量&#xff0c;我们现在讲C语言的常量。 整数、自然数常量 十进制 就好像生活中&#xff0c;如果写一个数字&#xff0c;大家都默认是十进制&#xff0c;在C语言里也一样&#xff0c;比如&#xff1a; int main(void) {int iInt ;iInt 10;printf("%d\r\n&q…

无人机电子调速器详解!!!

电子调速器是无人机动力系统中的关键组件&#xff0c;主要负责将电池提供的直流电转换为交流电&#xff0c;并精确控制电机的转速&#xff0c;从而实现对无人机飞行状态的精确控制。以下是对无人机电子调速器的详细解析&#xff1a; 一、基本功能与原理 功能&#xff1a; 直…

R语言:如何安装包“linkET”

自己在R语言中安装包“linkET”时报错不存在叫‘linket’这个名字的程辑包 尝试了install.packages("linkET")和BiocManager::install("linkET")两种安装办法都不行 >install.packages("linkET") WARNING: Rtools is required to build R pa…

挑选知识库管理软件?9大推荐让你不再纠结

这篇文章介绍了以下工具&#xff1a;PingCode、Worktile、幕布、腾讯文档、坚果云、Notion中国版、Evernote、SharePoint、Confluence。 在选择知识库管理软件时&#xff0c;面对众多选项是否感到头疼&#xff1f;对于部门内部的协作和知识管理&#xff0c;选择一款适合的工具至…

unity json 处理

1. c#对象 -> json public class Item {public int id;public int num;public Item(int id, int num){this.id id;this.num num;} } public class PlayerInfo {public string name;public int atk;public int def;public float moveSpeed;public double roundSpeed;publi…

域名注册查询方法

域名不仅是网站的地址标识&#xff0c;更是企业和个人在互联网上的身份证明。要确保自己的在线品牌安全&#xff0c;了解域名注册查询方法至关重要。本文将介绍几种常见的域名查询方式&#xff0c;帮助您轻松了解网络资产的归属。 1. WHOIS查询&#xff1a; WHOIS&#xff08;…

一站式数仓解决方案:ECharts+Luckysheet+DataX+Doris打造全能式数据中台

数据中台这个词出现的概率非常高&#xff0c;对于一个企业来讲&#xff0c;那么数据中台是什么呢&#xff1f;数据中台就是把数据从各个系统 用数据库对接、API对接、或者文件上传的形式把数据收集起来&#xff0c;整合加工&#xff0c;最后生成分析的结果&#xff0c;这个结果…

上周稼先社区的活动

参天是什么&#xff1f; 最近”参天”很火&#xff0c;不仅MySQL社区&#xff0c;听说Monty最近也跟他们搞了很多活动。其实说起华为的数据库&#xff0c;只有从事数据库行业的人才知道高斯&#xff0c;其他很多人不知道。但是即使从事数据库相关的人&#xff0c;对另外一个产…