Python-字典与集合

news2024/11/27 14:40:11

学习内容:Python基础入门知识

专栏作者不渴望力量的哈士奇不渴望力量的哈士奇擅长Python全栈白宝书[更新中],⑤ - 数据库开发实战篇,网安之路,等方面的知识,不渴望力量的哈士奇关注云原生,算法,python,集成测试,去中心化,web安全,智能合约,devops,golang,功能测试,测试工具,推荐算法领域.https://blog.csdn.net/weixin_42250835?type=blog

学习专栏:① - 零基础入门篇_不渴望力量的哈士奇的博客-CSDN博客

声明:本文内容大部分为引用,是在学习过程中复制的大佬的文章,仅供学习使用,仅作为笔记参考。

笔记目录

目录

📣 Python笔记

📣 字典

  🧭  字典的基本概念

    ⭐  字典的定义

    ⭐  字典支持的数据类型

  🧭  字典的基本操作

📣 集合

  🧭  集合的基本概念

  🧭  集合和列表的区别

  🧭  集合的运算

  🧭  集合常用的方法 



📣 Python笔记

📣 字典

  🧭  字典的基本概念

        字典是多个键值对所组成的一种数据类型。一个键(key)对应一个值(value)。其中键是索引,可以是任意不可变的类型。键和值放在 { } 中间,每一对键值对之间用逗号分开。

        在Python中,dict代表着字典这一类型,也可以用它定义一个字典。

    ⭐  字典的定义

        字典通常用于描述一个对象的属性,如果一个物品的信息,如:颜色、大小、形状等。

# 字典的定义
soap = {'name':'上海硫磺皂','color':'yellow','teast':'茉莉花'}
print('香皂的名:'+ soap['name'])
print('香皂的颜色:' + soap['color'])
print('香皂的味道:' + soap['teast'])

    ⭐  字典支持的数据类型

        键(key)支持 字符串、数字、元组类型,但不支持列表类型。

                🌠 通常是字符串或数字。

                🌠 如果一个元组质保函字符串、数字或者元组,那么这个元组可以用作键(key)。

                🌠 如果元组直接或间接的包含了可变对象,那么它就不能用作键(key)。

        值(value)支持所有的Python数据类型

# 字典中键和值所支持的数据类型
person = {'name':'张三', 'age':23, 'weight':65.3, 'height':175, 'now':'2022-11-20'}
print(type(person['name']))
print(type(person['age']))
print(type(person['weight']))
print(type(person['now']))

         声明一个空的字典,两种方式:

# 两种方式声明空的字典
dict_1 = {}
dict_2 = dict()
print(dict_1, type(dict_1))
print(dict_2, type(dict_2))

  🧭  字典的基本操作

        字典的读取:

# 字典的读取
soap = {'name':'上海硫磺皂','color':'yellow','teast':'茉莉花'}
print('香皂的名:'+ soap['name'])
print('香皂的颜色:' + soap['color'])
print('香皂的味道:' + soap['teast'])

        字典的值的修改:

soap = {'name':'上海硫磺皂','color':'yellow','teast':'茉莉花'}
print('香皂的名:'+ soap['name'])
print('香皂的颜色:' + soap['color'])
print('香皂的味道:' + soap['teast'])
soap['color'] = '黄色'
print('修改后的香皂的颜色:' + soap['color'])

         向字典中添加键值对:


print('添加前字典:', soap)
soap['tip'] = '好用极了'
print('添加后字典:', soap)

         删除字典中的键值对:

soap = {'name':'上海硫磺皂','color':'yellow','teast':'茉莉花'}
print('删除前的字典:', soap)
del soap['color']
print('删除后的字典:', soap)

 

         查询某个成员是否在字典中:

soap = {'name':'上海硫磺皂','color':'yellow','teast':'茉莉花'}
print('name属性是否在字典中:', 'name' in soap)
print('age属性是否在字典中:', 'age' in soap)
print('茉莉花  是否在字典中:', '茉莉花' in soap)

          💡  查询时是根据键(key)进行查询的,并不是通过值(value)进行查询。

📣 集合

  🧭  集合的基本概念

        集合是一个无序的(使用哈希存储)、不重复的序列。它的基本用法包括成员检测和消除重复元素。集合元素也支持像联合、交集、差集、对称差等数学运算。集合和字典一样,也是存放在 { } 中,不过,集合中的元素不是键值对的形式。

        {1,2,3}、{'b', 'c', 'd'}

cars = {'比亚迪','吉利','五菱'}
print('车的品牌:', cars)
score = {120,134,117,117}
print('英语成绩:',score)

        由输出结果可以知道,存储的顺序和输出的顺序并不相同,所以,集合并不是有序的。并且,集合会把集合中重复的元素剔除。

arr_1 = {{1,}, {2, }}
print(arr_1)

arr_2 = {[1, ],[2, ]}
print(arr_2)

        💡  因为 set 集合只能包含不可变对象元素,而列表、集合本身都是可变对象,所以会报错。

  🧭  集合和列表的区别

        列表中的元素允许重复,输出时列表不会剔除多余元素。

        列表是有序的,定义的是什么样子,输出就是什么样子。集合可能会有变化。

        集合中没有索引的概念,而列表中提供了索引服务,因为他是有序的,可以通过下标进行查找的数据结构。

  🧭  集合的运算

        💦 运算符 |        合并多个集合

# 合并多个集合
set_1 = {1, 2, 3}
set_2 = {4, 5}
set_3 = {3,4,5,6}
set_4 = (set_1 | set_2)
set_5 = (set_1 | set_3)
print(set_4)   # 输出:{1,2,3,4,5}
print(set_5)   # 输出:{1,2,3,4,5,6}

         💡 集合在合并过程中会自动的剔除重复的元素 

        💦 运算符 -        从集合中删除元素

# 从集合中删除元素
set_1 = {1, 2, 3}
set_2 = {4, 5}
set_3 = {3,4,5,6}
set_4 = (set_1 - set_2)
set_5 = (set_1 - set_3)
print(set_4)   # 输出:{1,2,3}
print(set_5)   # 输出:{1,2}

        💦 运算符 &         取两个集合的交集

# 取两个集合的交集
set_1 = {1, 2, 3}
set_2 = {4, 5}
set_3 = {3,4,5,6}
set_4 = (set_1 & set_2)
set_5 = (set_1 & set_3)
print(set_4)   # 输出:set()
print(set_5)   # 输出:{3}

         💦 运算符 ^        取两个集合的差集

# 取两个集合的差集
set_1 = {1, 2, 3}
set_2 = {4, 5}
set_3 = {3,4,5,6}
set_4 = (set_1 ^ set_2)
set_5 = (set_1 ^ set_3)
print(set_4)   # 输出:{1,2,3,4,5}
print(set_5)   # 输出:{1,2,4,5,6}

        💦 关键字 in        检查集合中是否包含指定的元素

# 取两个集合的差集
set_1 = {1, 2, 3}
set_2 = {4, 5}

print(1 in set_1)   # 输出:True
print(2 in set_2)   # 输出:False

  🧭  集合常用的方法 

        📌 add(item)        向集合中添加元素

# 向集合中添加元素
set_1 = {1, 2, 3}
set_2 = {4, 5}
set_1.add(6)
print(set_1)   # 输出:{1,2,3,6}
set_2.add('Hi')
print(set_2)    # 输出:{'Hi',4,5}

         📌 remove(item)        从集合中删除元素

# 向集合中删除成员
set_1 = {1,2,3,4,7}
print('执行remove之前集合的成员:',set_1)
set_1.remove(7)
print('执行remove之后集合的成员:', set_1)

         📌clear() 方法        清除集合中所有的元素

# 清除集合中所有的元素
set_1 = {1, 2, 3}
print('清除之前的集合的样子:',set_1)
set_1.clear()
print('清除之后的集合的样子:',set_1)

         📌union() 方法        返回两个集合的并集

# union() 返回两个集合的并集
set_1 = {1,2}
set_2 = {2,3,4}
print(set_2.union(set_1))

        📌intersection() 方法        返回两个集合的交集

# intersection() 返回两个集合的交集
set_1 = {1, 2}
set_2 = {2, 3, 4}
print(set_2.intersection(set_1))

        📌issubset() 方法        判断一个集合是不是另一个集合的子集

# issubset() 判定集合是否为子集
set_1 = {1, 2}
set_2 = {2, 3, 4}
set_3 = {2}
print(set_1.issubset(set_2))   # 判断set_1是否为set_2的子集  返回:False
print(set_3.issubset(set_2))   # 判断set_3是否为set_2的子集  返回:True

        📌issuperset​​​​​​​​​​​​​​() 方法        判断一个集合是不是另一个集合的超集

# 判断一个集合是否是另一个集合的超集
set_1 = {1, 2}
set_2 = {2, 3, 4}
set_3 = {2}
print('判断set_2是否是set_3的超集:',set_2.issuperset(set_3))     
print('判断set_2是否是set_1的超集:', set_2.issuperset(set_1))

🌞书山有路勤为径,学海无涯苦作舟。🌞​​​​​​​

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

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

相关文章

如何使用jenkins、ant、selenium、testng搭建自动化测试框架

如果在你的理解中自动化测试就是在eclipse里面讲webdriver的包引入,然后写一些测试脚本,这就是你所说的自动化测试,其实这个还不能算是真正的自动化测试,你见过每次需要运行的时候还需要打开eclipse然后去选择运行文件吗&#xff…

NR RLC(二)相关参数及format

欢迎关注同名微信公众号“modem协议笔记”。 实际查看RLC部分log难免要翻协议,查阅最多的就是相关参数的含义,反而RLC具体过程就没有像当初阅读时那样特别关注了。其实清楚RLC参数含义,看38.322就没那么困难。而RLC具体过程往往要用到相关参…

azkaban --- 案例实操

目录 案例一 : 输出Hello World 案例二 :作业依赖 案例三 :内嵌工作流 案例四 :自动失败 案例五 :手动失败 案例六 :JavaProcess 案例七 :启动服务 案例八 :Hbase 案例九 …

SpringBoot整合企业微信消息推送(四十五)

从头开始,并不意味着失败,相反,正是拥抱成功的第一步,即使还会继续失败 上一章简单介绍了 SpringBoot整合钉钉消息推送(四十四) , 如果没有看过,请观看上一章 一. 企业微信前期准备 用户需要注册一个企业微信, 并且登…

ANR基础 - Input系统

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录 系列文章目录前言一、Input系统概述二、整体框架1.整体框架类图2.核心启动过程2.1 initialize2.1 I…

浅析一下PTPD

浅聊一下PTPD 文章目录 浅聊一下PTPD1.什么是PTPD2.PTPD源码浅析一下1.src文件1.arith.c2.bmc.c3.constant.h 和 datatypes.h4.display.c5.management.c6.protocol.c7.ptp_datatypes.h8.ptp_primitives.h9.ptp_timers.c10.ptpd.c11.signaling.c12.timedomain.c 2.def文件夹3.de…

ROS:gazebo创建仿真地图,turtlebot3加载仿真地图进行建图,生成yaml和pgm地图信息

一.安装turtlebot3 Ubuntu18.04 实现:安装turtlebot3功能包、虚拟机与机器人之间的网络配置、测试机器人Cartographer建图_Charlesffff的博客-CSDN博客 二.安装gazebo ROS18.04:安装gazebo,下载模型_gazebo下载模型_Charlesffff的博客-CSD…

Linux 设备驱动程序(二)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核(一) 深入理解 Linux 内核(二) Linux 设备驱动程序(一) Linux 设备驱动程序(二) Linux设备驱动开发详解 文章目录 系列文章目…

大型央企集团财务经营分析框架系列(三)

01集团经营管理分析的切入点 集团经营管理分析的切入点往往是从财务分析开始。 往往在一家企业里面,财务方面的信息化建设是要早于其它方面的信息化建设的,业务标准化程度比较高,数据标准化程度也比较高,分析框架也相对成熟。 …

栈和队列的相关功能实现及其基础应用

前言:栈和队列是常见的数据结构,它们在计算机科学中被广泛应用。栈和队列都是一些元素的集合,它们的主要区别在于数据的组织方式和访问顺序。在栈中,元素的添加和删除都在同一端进行,称为栈顶,而在队列中&a…

PMP考试100个主要知识点

1.一个项目在启动阶段会进行量级估算,准确范围是-50至100%。2000版的量级估算准确度为:-25%到75%。 2.质量控制通常先于范围确认执行,但这两个过程可以并列进行参考 3.Cost-plus-fixed-fee(CPFF)成本加固定费用合同。成本补偿型合同包括成本加…

快速入门ChatGPT和AIGC:底层原理、热门工具、行业现状【我们能做什么】

最近大家热议的ChatGPT和AI绘画工具的底层技术原理是什么?是如何发展到现在的?有哪些应用场景、热门工具?AIGC产业上下游有哪些公司?作为普通用户,我们还能接触哪些应用AI技术打造的商业解决方案?…… 我们…

微信小程序 录音+播放组件封装

展示 长按录音 松开结束录音 点击播放 再次点击暂停 再次点击继续播放 展示效果: 录音功能 录音功能(手指按下开始录音 手指松开结束录音): 使用wx原生录音功能在 component 外新建 wx.getRecorderManager() RecorderManager…

国巨 :硬件设计基础60条

硬件设计是现代科技发展中至关重要的领域之一。它涵盖了从微电子器件到复杂的系统级设计的各个方面,是现代电子产品的核心。在这篇文章中,我将介绍60个基础概念,这些概念是硬件设计工程师必备的知识,并且是设计出高质量硬件的关键…

【web】学习ajax和fetch

1/什么是ajax ajax 全名 async javascript and XML(异步JavaScript和XML) 是前后台交互的能⼒。 也就是我们客户端给服务端发送消息的⼯具,以及接受响应的⼯具。 在不重新加载整个网页的情况下,对网页的某部分进行更新。而传统的网页(不使用 Ajax)如果需…

设计师必备的5个素材库,马住

今天就告诉大家设计师都是去哪些网站找素材,分享五个网站,解决你80%的设计素材,建议收藏! 1、菜鸟图库 https://www.sucai999.com/?vNTYxMjky 这是一个为新手设计师提供免费素材的设计网站,站内有超多平面模板、海报…

成为一名黑客需要学什么

想成为一名专业黑客,但不知道从哪里学起”很多人向盾叔问过这个问题,今天盾叔就为你介绍成为专业黑客必须学习的十个方面的知识,希望能为迷惘中的你指明方向。 一、基本的计算机知识 把它列为第一条,相信很多人肯定会觉得不以为…

Java虚拟机快速入门 | JVM引言、JVM内存结构、直接内存

目录 一:JVM引言 1. 什么是 JVM ? 2. 常见的 JVM 3. 学习路线 二:JVM内存结构 1. 程 序 计 数 器(PC Register) 2. 虚 拟 机 栈(JVM Stacks) 3. 本 地 方 法 栈(Native Method Stacks&…

Vscode C++环境配置

多文件编译 打开设置搜索coderunner 找到Executor Map 加入-I目录名 目录名/*.cpp 调试 点击调试以后会产生tasks.json文件,加入链接文件和库文件

map用法以及特殊值的情况

map用法以及特殊值的情况 一、map用法的说明 map(callbackFn, thisArg); // callbackFn回调函数,thisArg可选 callbackFn是个回调函数,该回调函数的参数按照顺序为element(当前正在处理的元素),index(正…