Python元组、集合、字典(超详细举例、讲解和区分)

news2024/12/27 11:17:22

总有一天你要一个人在暗夜中,向那座桥走过去

文章目录

一、元组

字符串、元组、列表的总结

二、集合

1.定义空集合

2.创建集合

(1)直接创建

(2)set函数

3.列表、元组、字符串、字典的去重

4.向集合中添加元素

(1)add函数

(2)update函数

5.集合元素的删除

(1)remove函数

(2)pop函数

(3)discard函数

6.集合的交集和并集

三、字典

1.创建字典

(1)直接用{},也是最常用的方法

(2)dict函数

2.字典的增、删、改、取

(1)增加

(2)删除

(3)修改

(4)获取

3.字典的各种操作函数

(1)get函数——过去字典的某个键对应的值。并返回

(2)keys函数——以列表的形式返回字典中的所有键

(3)items函数——以列表的形式返回字典中所有键值对

(4)values函数——以列表的形式返回字典中的所有值

(5)clear函数

(6)copy函数——创建字典副本

(7)fromkeys函数——创建一个新字典

(8)pop函数——从字典中删除指定键,并返回这个键的对应值

(9)popitem函数——删除字典中最后一项,并返回它的键和值

(10)setdefault函数——用于设置键的默认值

(11)update函数——将字典2的内容更新至字典1

四、成员/标识符检测与判断

1.成员检测(检测成员是否在序列中)

2.判断两个对象和是否相同


大家好,我是纪宁

今天要介绍的是python的元组、集合、字典,这是Python基础目前的学习进度

一起加油

一、元组

  元组与列表是类似的,写在()里(列表写在[])里,元素中间用逗号隔开,且元素类型可以不同

  元组在性质上与列表不同的是,元组里面的元素不能改变

  但是,如果元组里面有列表,列表里面的值可以改变

字符串、元组、列表的总结

元祖、字符串、列表中可以共同使用的常用函数

len() 返回字符串/元组/列表 的长度

min() 返回字符串/元组/列表 里面的最小值(如果是字符串,则逐个比较ASCII码) 

max() 返回字符串/元组/列表 里面的最小值(如果是字符串,则逐个比较ASCII码)

二、集合

  集合就是像这种的  { , , , }

  元素之间用逗号隔开、元素可以为任何类型

  集合是无序的,且集合里的元素是唯一的

1.定义空集合

使用方法:d=set()

不能直接用{},这样会被认为是空字典

2.创建集合

(1)直接创建

变量名={元素,元素,元素,元素,......}元素可以为元组、字符串、数字等

(2)set函数

变量名=set(元素),只能有一个元素(只能是元组、列表或者字符串等等)

当元素是字符串时,放在集合里就将字符串里面的字符逐个取出来

但是当字符串放在列表或者元组里面时,则不会将字符串给拆开

如 d=set("纪宁余微");print(d)   #字符串单独放

>>{'纪', '宁', '余', '微'}

    d=set([1,2,3,"纪宁余微"]);print(d)      #字符串在列表里

>>{1, 2, 3, '纪宁余微'}

3.列表、元组、字符串、字典的去重

将列表、元组、字符串、字典用set函数放入集合中,会自动去重

这里就用列表来举例子

如d=set([1,2,3,3,2,1,33,33,4,6]);print(d)

>>{1, 2, 3, 4, 33, 6}   #列表里的元素是无序的

4.向集合中添加元素

(1)add函数

用add函数往集合中添加数字/字符串/元组等,直接将元素加在集合末尾

使用方法:d.add(元素)

注意事项:如果添加的元素集合中已经有了,则不会显示(集合中不会出现重复元素)

(2)update函数

update函数可以将集合b合并于集合a中

使用方法:a.update(b)

如a={"纪宁","余微"};b={1,2,3}
a.update(b);print(a)  #对a操作,将b并入a

>>{1, 2, 3, '纪宁', '余微'}

5.集合元素的删除

(1)remove函数

使用方法:a.remove(要删除的元素)

注意事项:如果集合里有这个元素,就直接删除,如果没有的话,就报错

(2)pop函数

使用方法:a.pop()

作用:在a集合中随机删除一个元素

注意事项:如果集合里有元素,就直接删除,如果没有元素,就报错

(3)discard函数

使用方法:a.discard(要删除的元素)

作用:在a中删除要删除的元素

注意事项:如果集合里有元素,就直接删除,如果没有元素,不做任何处理

6.集合的交集和并集

&交集:s3=s1&s2——得到集合s1和集合s2的交集,并存入s3中

| 并集:s3=s1|s2——得到集合s1和集合s2的并集,并存入s3中

三、字典

  字典是一种映射类型,一种键对应一种值,且键是不可变的,所以字典键的类型必须是一种不可变类型

字典的键不能重复

  如果字典中有多个相同的键,只保留最后一个键的键和值(覆盖前面的)

  创建空字典 {}

1.创建字典

(1)直接用{},也是最常用的方法

创建方法:字典名={  键 : 值  ,  键 : 值  ,  键 : 值}

如d={
"姓名":"纪宁",
"年龄":18
}

键和值必须得一一对应

(2)dict函数

使用方法:dict(元组+列表)——将列表写在元组里

如d=dict((["名字","年龄"],["纪宁",18]))
print(d)

>>{'名字': '年龄', '纪宁': 18}

2.字典的增、删、改、取

(1)增加

使用方法:d[键名]=值(对应要增加的键和值)

如d={
"姓名":"纪宁",
"年龄":18
}

d["技能"]="剑法";print(d)

>>{'姓名': '纪宁', '年龄': 18, '技能': '剑法'}

(2)删除

使用del关键字

使用方法:del 字典名[键名]

如d='{姓名': '纪宁', '年龄': 18, '技能': '剑法'}

del d["纪宁"];print(d)

>>{'姓名': '纪宁', '年龄': 18}

(3)修改

使用方法:d[键名]=要修改的值

(4)获取

使用方法:d[键名]

获取这个键对应的值

3.字典的各种操作函数

(1)get函数——过去字典的某个键对应的值。并返回

使用方法:字典名.get(键名)

如d={
"姓名":"纪宁",
"年龄":18
}

r=d.get("名字");print(r)

>>纪宁

如果这个键在字典中不存在,则返回None

也可以让不存在的键返回一个默认值,但是原来的d里面的值不改变

如r=d.get("门派","天苍宫");print(r)

>>天苍宫

(2)keys函数——以列表的形式返回字典中的所有键

使用方法:字典名.keys()

如d={
"姓名":"纪宁",
"年龄":18
}
z=d.keys();print(z)

>>dict_keys(['姓名', '年龄'])

(3)items函数——以列表的形式返回字典中所有键值对

使用方法:字典名.items()

如d={
"姓名":"纪宁",
"年龄":18
}
z=d.items();print(z)

>>dict_items([('姓名', '纪宁'), ('年龄', 18)])

(4)values函数——以列表的形式返回字典中的所有值

使用方法:字典名.values()

如d={
"姓名":"纪宁",
"年龄":18
}

z=d.values();print(z)

>>dict_values(['纪宁', 18])

(5)clear函数

用于字典清空

使用方法:字典名.clear()

如d={
"姓名":"纪宁",
"年龄":18
}
d.clear();print(d)

>>{}

(6)copy函数——创建字典副本

字典副本与原字典互不影响(一个改变不影响另一个)

使用方法:字典名.copy()

如d={
"姓名":"纪宁",
"年龄":18
}
c=d.copy();print(c)

>>{'姓名': '纪宁', '年龄': 18}

(7)fromkeys函数——创建一个新字典

使用方法:字典名.fromkeys(参数1,参数2)

参数1是一个不可变序列,作为多个键;参数2是任意数据类型,作为每个键的值

所以fromkeys函数创建的字典的值都是相同的

(8)pop函数——从字典中删除指定键,并返回这个键的对应值

使用方法:字典名.pop(键名)

如d={
"姓名":"纪宁",
"年龄":18
}

c=d.pop("姓名");print(c)

>>纪宁

(9)popitem函数——删除字典中最后一项,并返回它的键和值

使用方法:字典名.popitem()

如d={
"姓名":"纪宁",
"年龄":18
}

c=d.popitem();print(d);print(c)

>> {'姓名': '纪宁'}
     ('年龄', 18)

(10)setdefault函数——用于设置键的默认值

使用方法:字典名.setfault(键,值)

如d={
"姓名":"纪宁",
"年龄":18
}

d.setdefault("门派","黑白学宫");print(d)

>>{'姓名': '纪宁', '年龄': 18, '门派': '黑白学宫'}

(11)update函数——将字典2的内容更新至字典1

使用方法:字典1名.update(字典2名)

若字典2的键在字典1中已存在,则对字典1对应键进行修改(改为字典2的值)

若字典2的键在字典1中没有,则对字典1进行添加;并保留1中2没有的键和值

如d_1={
"姓名":"纪宁",
"年龄":18,
"门派":"黑白学宫",
"师傅":"菩提老祖"
}
d_2={
"姓名":"余微",
"年龄":19,
"门派":"黑白学宫",
"道侣":"纪宁"
}
d_1.update(d_2);print(d_1)

>>{'姓名': '余微', '年龄': 19, '门派': '黑白学宫', '师傅': '菩提老祖', '道侣': '纪宁'}

四、成员/标识符检测与判断

1.成员检测(检测成员是否在序列中)

in / not in

in:如果对象在序列中,就返回True,否则就返回False

not  in:如果对象不在序列中,就返回True,否则就返回False

序列如果是字典的话,判断的对象是键

使用方法:对象   in/not in   序列

如:1 in (1,2,3,4)  #1在(1,2,3,4)这个元组序列里,就返回True

2.判断两个对象和是否相同

is / is not

is:判断对象是否相同,相同就返回True,否则就返回False

is not:判断对象是否不相同,不相同就返回True,否则就返回False

注意:这里的对象是不可变类型(如果对象是列表或者字典等可变类型,则必定判断为不相同)

如a=(1,2,3)
b=(1,2,3)
z=a is b

print(z)

>>True

在这里插入图片描述

 博主写了好长时间,如果你能给博主一个免费三连鼓励一下博主的话,那么你真是 泰裤辣

 

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

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

相关文章

python---js逆向------再接再励------案例

作者前言 这是我的gitee仓库:https://gitee.com/qin-laoda/python-exercises 有兴趣的小可爱们可以点进去看看, 目录 常见的js加密算法 微信公众号的简单案例 ________________________________ 鉴于有一些小可爱对于js逆向的理解还有一些不解,下面我会再进一步的介绍js…

【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(6月 23 日论文合集)

文章目录 一、检测相关(4篇)1.1 Targeted collapse regularized autoencoder for anomaly detection: black hole at the center1.2 RXFOOD: Plug-in RGB-X Fusion for Object of Interest Detection1.3 Toward Automated Detection of Microbleeds with Anatomical Scale Loca…

axios简单使用

axios简单使用 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-wid…

【杂谈】过往时期2-嵌入式求学故事线简忆

前一篇文章 过往时期 - 欢迎来到 Staok - 瞰百易 (gitee.io)。 在我兴趣广泛的过去&#xff0c;关于嵌入式方面的经历啊&#xff0c;讲一条这个的故事线。 小学&#xff0c;电子积木&#xff0c;灯泡&#xff0c;电机&#xff0c;上电发光、风扇旋转&#xff0c;风扇转的快了还…

AnyLogic仿真软件 8.8.2 Crack

AnyLogic仿真软件用于以下行业&#xff1a; 供应链 制造业 运输 仓库运营 铁路物流 矿业 石油和天然气 港口及码头 更多行业 为什么要进行仿真建模&#xff1f; 无风险环境 仿真建模提供了一种安全的方法来测试和探索不同的“假设”场景。在做出现实世界的改变之前做出正确的决…

第10章 隐式转换

第10章 隐式转换 package chapter10object Test01_TestImplicit {def main(args: Array[String]): Unit {val richInt new MyRichInt(12)println(richInt.myMax(15))// 1. 隐式函数implicit def convert(num: Int): MyRichInt new MyRichInt(num)println(12.myMax(15))// 2.…

登录校验原理过程和统一拦截技术(Cookie、Sesstion 和JWT令牌)

一、登录校验 问题&#xff1a;在未登录情况下&#xff0c;我们也可以直接访问部门管理、员工管理等功能。由于浏览器与web服务器中的数据交互是通过HTTP协议的&#xff0c;而HTTP协议是无状态的–即每个页面中的请求和响应都是独立的&#xff0c;没有状态存在。所以我们需要进…

【数据库】关系型数据库与非关系型数据库解析

【数据库】关系型数据库与非关系型数据库解析 文章目录 【数据库】关系型数据库与非关系型数据库解析1. 介绍2. 关系型数据库3. 非关系型数据库4. 区别4.1 数据存储方式不同4.2 扩展方式不同4.3 对事务性的支持不同4.4 总结 参考 1. 介绍 一个通俗易懂的比喻&#xff1a;关系型…

Xpath介绍以及语法

Xpath介绍 XML路径语言&#xff08;XML Path Language&#xff09;&#xff0c;它是一种用来确定XML文档中某部分位置的语言。 XPath基于XML的树状结构&#xff0c;提供在数据结构树中找寻节点的能力。 起初XPath的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模…

第8章 模式匹配

第8章 模式匹配 基本概念和用法 模式守卫 package chapter08object Test01_PatternMatchBase {def main(args: Array[String]): Unit {// 1. 基本定义语法val x 5val y x match {case 1 > "one"case 2 > "two"case 3 > "three"ca…

《Reinforcement Learning: An Introduction》第6章笔记

Chapter 6 Temporal-Difference Learning If one had to identify one idea as central and novel to reinforcement learning, it would undoubtedly be temporal-difference (TD) learning. 时序差分学习&#xff08;temporal-difference (TD) learning&#xff09;组合了Mon…

PID控制算法 – 0、PID原理

1、开局一张图 很多地方都觉得PID的控制结构示意图是这样的&#xff1a; 2、目标值&#xff08;Setpoint&#xff09;、输入值&#xff08;Input&#xff09;、误差&#xff08;Error&#xff09; 其实把上图那个输入改为目标值&#xff08;Setpoint&#xff09;更合适&#…

canvas详解08-基本动画

由于我们是用 JavaScript 去操控 canvas 对象,这样要实现一些交互动画也是相当容易的。在本章中,我们将看看如何做一些基本的动画。 可能最大的限制就是图像一旦绘制出来,它就是一直保持那样了。如果需要移动它,我们不得不对所有东西(包括之前的)进行重绘。重绘是相当费…

CoreMark 跑个分:OrangePi5 RK3588S

一、 Orange Pi 5 简介 Orange Pi 5 采用了瑞芯微 RK3588S 新一代八核 64 位处理器&#xff0c;具体为四核A76四核A55&#xff0c;采用了 8nm 工艺设计&#xff0c;主频最高可达 2.4GHz&#xff0c;集成 ARM Mali-G610 MP4 GPU&#xff0c;内嵌高性能 3D 和 2D 图像加速模块&am…

【python桌面应用设计】tkinter库 01. Tkinter程序设计思想和结构(保姆级代码注释)

目录 实现思路代码实战简单的基础结构示例稍微丰富一点的示例 总结 『python图形化GUI界面设计』分享tkinter库、PyQt5库、wxPython库等相关的新手入门教程&#xff0c;目标是编写python程序时可以给程序一个可视化界面。 欢迎关注 『python桌面应用设计』 系列&#xff0c;持续…

ubuntu18.04安装ORBSLAM2

最近倒腾了一下旧项目&#xff0c;发现之前的环境不知道抽了什么风&#xff0c;直接不能用了&#xff0c;好吧&#xff0c;索性从头装过。 一、第三方库 主要包括Pangolin 、 OpenCV 、 Eigen g2o 与 DBoW2在ORB-SLAM2里面自带可以不需要自己搞 # 更新apt库,更新软件列表 su…

七、c++学习(加餐3:深入分析类和对象(下))

我们把这篇《深入分析类和对象》分为两篇&#xff0c;就是为了简化一下大家学习的压力&#xff0c;现在我们接下来看下一篇。 C学习&#xff0c;b站直播视频 文章目录 7.1 对象操作7.1.1 对象拷贝7.1.1.1 无拷贝赋值运算符7.1.1.2 测试编译器会不会自动生成7.1.1.3 自己写拷贝…

【吃透网络安全】2023软考网络管理员考点网络安全(四)防火墙详解

涉及知识点 什么是防火墙&#xff1f;防火墙的概念及定义&#xff0c;防火墙的优缺点&#xff0c;软考网络管理员常考知识点&#xff0c;软考网络管理员网络安全&#xff0c;网络管理员考点汇总。 后面还有更多续篇希望大家能给个赞哈&#xff0c;这边提供个快捷入口&#xf…

Reactive 环境配置 遇到的问题记录

问题&#xff1a;Watchman: watchman--no-pretty get-sockname returned with exit code 1 ERROR: Unknown option --no-pretty 解决方案&#xff1a;运行ReactNative工程watchman运行错误 解决过程就是&#xff0c;我的watchman 没安装好&#xff0c;于是卸载&#xff0c;重新…

电子电气架构 —— OEM关于DTC具体实现相关见解

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 我们当前遇到的几乎所有的成长问题都可以归结道目光短浅、及时满足的天性上,不过在现代社会,用避难趋易和急于求成来指代他们更贴切。 本文主要讲…