Python学习 - 语法入门:https://blog.csdn.net/wanzijy/article/details/125287855
Python学习 - 数据类型:https://blog.csdn.net/wanzijy/article/details/125341568
Python学习 - 流程控制:https://blog.csdn.net/wanzijy/article/details/125400906
Python学习 - 运算符(操作符):https://blog.csdn.net/wanzijy/article/details/125387919
Python学习 - 列表:https://blog.csdn.net/wanzijy/article/details/125457990
Python学习 - 字典:https://blog.csdn.net/wanzijy/article/details/125567225
Python学习 -元组和集合:https://blog.csdn.net/wanzijy/article/details/125577609
Python学习 - 函数(1):https://blog.csdn.net/wanzijy/article/details/125669084
Python学习 - 函数(2):https://blog.csdn.net/wanzijy/article/details/125739981
Python学习 - 类与对象:https://blog.csdn.net/wanzijy/article/details/125826952
Python学习 - 面向对象之封装:https://blog.csdn.net/wanzijy/article/details/125902925
Python学习 - 面向对象之继承:https://blog.csdn.net/wanzijy/article/details/125963829
Python学习 - 面向对象之多态:https://blog.csdn.net/wanzijy/article/details/127140632
Python - 文件操作(1):https://blog.csdn.net/wanzijy/article/details/127099071
Python - 文件操作(2):https://blog.csdn.net/wanzijy/article/details/127150189
Python学习 - 垃圾回收、特殊方法和模块:https://blog.csdn.net/wanzijy/article/details/126202999
Python学习 - 异常处理:https://blog.csdn.net/wanzijy/article/details/126803672

1. 元组(tuple)

1.1 简介

不可变的序列
操作方式基本上和列表是一致的
一般当希望数据不改变时,就使用元组,其余情况都使用列表

1.2 创建

使用()来创建元组

my_tuple = ()

当元组不是空元组时,括号可以省略
如果不是空元组,它里边至少要有一个“,”

my_tuple1 = 1, 2, 3, 4, 5my_tuple2 = 1,   #  后面的逗号不能省略,不然会被当成是整型

1.3 解包(解构)

将元组当中的每一个元素都赋值给一个变量

在解包时,变量的数量必须和元组中元素的数量一致。也可以在变量前添加一个 *,这样变量将会获取元组中所有剩余的元素
不能同时出现两个或两个以上的 *

my_tuple4 = 10, 20, 30, 40
a, b, c, d = my_tuple4
print(a, b, c, d)  #  10 20 30 40g, h, *i = my_tuple4
print(g, h, i)   #  10 20 [30, 40]j, *k, l = my_tuple4
print(j, k, l)   #  10 [20, 30] 40*m, n, o = my_tuple4
print(m, n, o)   #  [10, 20] 30 40p, q, *r = [1, 2, 3, 4, 5, 6, 7]
print(p, q, r)   #  1 2 [3, 4, 5, 6, 7]

列表也能进行解包

p, q, *r = 'hello world'
print(p, q, r)   #  h e ['l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

常用于交换两个数的值

e = 100
f = 300
e, f = f, e  #  交换两个数的值

1.4 可变对象

列表是一个可变对象
注意 id值(在内存中的地址) 的变化,再结合代码中的文字注释进行理解

a = [1, 2, 3]
print(a, id(a))  #  [1, 2, 3] 2129651323400a[0] = 10  #  通过变量去修改对象中的值,不会改变变量所指向的对象
print(a, id(a))  #  [10, 2, 3] 2129651323400a = [4, 5, 6]  #  这种操作会改变变量所指向的对象
print(a, id(a))  #  [4, 5, 6] 2129651323912

当我们去修改对象时,如果有其他对象也指向该对象,则修改也会在其他变量中体现

a = [1, 2, 3]
b = a
a[0] = 11
print(a)  #  [11, 2, 3]
print(b)  #  [11, 2, 3]

一般只有在为变量赋值时才是修改变量,其余的都是修改对象

拓展:

  • == 和 != 比较的是对象的值是否相等
  • is 和 is not 比较的是对象的id(内存地址)是否相等(比较两个对象是否是同一个对象)

2. 集合(set)

2.1 简介

只能存储不可变对象
存储的对象是无序的(不是按照元素的插入顺序保存)
不能出现重复的元素。如果有重复的,只会保存一个,其余的将自动剔除
集合中的元素不能通过索引去操作。如果想用索引来操作的话,要先用 list() 函数转换成列表,然后再通过索引进行操作

2.2 操作

2.2.1 创建

  • { } 直接创建,但是无法创建空集合
  • set()
    • 可以创建一个空集合
    • 可以通过 set() 来将序列和字典转换为集合
    • 使用 set() 将字典转换为集合时,只会包含字典中的键
s = {}  #  创建出来的不是空集合
print(s)  #  {}s = {11, 2, 33, 4}
print(s, type(s))  #  {33, 2, 11, 4} <class 'set'>s = {1, 1, 1, 2, 3, 7, 4}
print(s)  #  {1, 2, 3, 4, 7}s = set()
print(s)  #  set()s = set([1, 2, 3, 4])
print(s)  #  {1, 2, 3, 4}s = set('hello')
print(s)  #  {'h', 'o', 'e', 'l'}s = set({'a': 1, 'b': 2})
print(s)  #  {'a', 'b'}

2.2.2 添加

add()

  • 向集合里添加元素
  • 语法: 集合.add(元素)
s = {1, 2, 3, 'a', 'b'}
s.add(None)
print(s)  #  {1, 2, 3, None, 'a', 'b'}

2.2.3 修改

update()

  • 将一个集合中的元素添加到当前集合中
  • 语法: 集合.update(序列/字典)
  • 如果是字典的话,只会将字典中的键添加进集合里
s = {1, 2, 3, 'a', 'b'}
s1 = {4, 6, 7, 8, 9}s.update(s1)
print(s)  #  {1, 2, 3, None, 4, 6, 7, 8, 9, 'a', 'b'}s.update((10, 20, 30, 40))
print(s)  #  {1, 2, 3, None, 4, 6, 7, 8, 9, 10, 40, 20, 'a', 'b', 30}s.update({10: 'ab', 20: 'cd', 30: 'ef'})
print(s)  #  {1, 2, 3, None, 4, 6, 7, 8, 9, 10, 40, 100, 200, 300, 'b', 'a', 20, 30}

2.2.4 删除

pop()

  • 随机删除一个集合中的元素
  • 会返回删除后的值
  • 语法: 集合.pop()
s = {1, 2, 3, None, 4, 6, 7, 8, 9, 10, 40, 100, 200, 300, 'b', 'a', 20, 30}
print(s.pop())  #  1
print(s)  #  {2, 3, None, 4, 6, 7, 8, 9, 10, 40, 100, 200, 300, 'b', 'a', 20, 30}

remove()

  • 删除集合中的指定元素
  • 语法: 集合.remove(元素)
s = {2, 3, None, 4, 6, 7, 8, 9, 10, 'b', 40, 100, 200, 300, 'a', 20, 30}
s.remove(2)
print(s)  #  {3, None, 4, 6, 7, 8, 9, 10, 'b', 40, 100, 200, 300, 'a', 20, 30}

clear()

  • 清空集合中所有的元素
  • 语法: 集合.clear()
s = {2, 3, None, 4, 6, 7, 8, 9, 10, 'b', 40, 100, 200, 300, 'a', 20, 30}
s.clear()
print(s)  #  set()

2.2.5 其他

len()

  • 获取集合中元素的个数
  • 语法: len(集合)
s = {'a', 'b', 1, 2, 3}
print(len(s))  #  5

in 和 not in

  • in 检查集合中是否包含指定的元素,存在返回 True,反之
  • not in 检查集合中是否不包含指定的元素,不存在返回 True, 反之
s = {'a', 'b', 1, 2, 3}
print('a' in s)  #  True
print('a' not in s)  #  False

copy()

  • 对集合进行浅复制
  • 语法: 集合.copy()
s = {None, 3, 4, 6, 7, 8, 9, 10, 200, 'b', 20, 30, 100, 40, 300, 'a'}
a = s.copy()
print(a)  #  {None, 3, 4, 6, 7, 8, 9, 10, 200, 'b', 20, 30, 100, 40, 300, 'a'}

2.3 运算

做运算时,不会影响原来的集合。而是将运算结果返回

如果a集合中的元素全部都在b集合中出现,那么a集合就是b集合的子集,b集合就是a集合的超集
如果超集b中含有子集a中所有元素,并且b中还有a中没有的元素,则b就是a的真超集,a是b的真子集

  • & 交集运算
  • | 并集运算
  • - 差集运算
  • ^ 异或集运算,只在一个集合中出现的元素
s = {1, 2, 3, 4, 5}
s2 = {3, 4, 5, 6, 7}print(s & s2)  #  {3, 4, 5}
print(s | s2)  #  {1, 2, 3, 4, 5, 6, 7}
print(s - s2)  #  {1, 2}
print(s ^ s2)  #  {1, 2, 6, 7}
  • <= 检查一个集合是否是另一个集合的子集
  • < 检查一个集合是否是另一个集合的超子集
  • >= 检查一个集合是否是另一个集合的超集
  • > 检查一个集合是否是另一个的真超集
a = {1, 2, 3}
b = {1, 2, 3, 4, 5}
c = {1, 2, 3}print(a <= b)  #  True
print(a <= c)  #  True
print(a < c)  #  False
print(a < b)  #  True

Python学习 -元组和集合相关推荐

  1. python列表元组字典集合实验心得_python学习小总结(列表、元组、字典、集合、字符串)...

    ---恢复内容开始--- 一.列表(list) 1.添加 append():追加,在列表末尾添加元素. 列表名.append(添加的元素) extend():扩展,在列表末尾添加元素. 列表名.ext ...

  2. SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理

    SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理 本文连接 简介 SIGIA_4P 网址 a. 课程OKR Objectives and ...

  3. Python学习笔记:集合(set)

    Python学习笔记:集合(set) 1.集合概念 集合是互异元素的无序集合.类似于只有键没有值的字典. 2.创建集合 有两种方法创建集合:一个是利用set函数,一个是利用花括号创建集合字面量. 3. ...

  4. python学习-元组tuple(定义、删除、长度、复制、查找、遍历、operator,和列表的区别)

    元组tuple 元组的创建 元组的使用 使用进阶 元组和列表的区别 元组的创建 Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组的创建,使用()或在定义变量以后添加一个逗号(,) ...

  5. 【Python】元组与集合

    一.元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可 定义空元组 print(tup ...

  6. 【Python从零到壹】Python的元组和集合

    文章目录 1. 元组的概念 1) 什么是元组 2) 元组的创建方式 作者:互联网老辛 开发时间:2021/4/4/0004 6:54 2. 元组的遍历 3.集合的概念 1) 什么是集合 2) 集合的创 ...

  7. python学习-元组的复习及进阶使用(iterable、indexing and slicing、sequence unpacking、immutable、named tuple)

    文章目录 可迭代的(iterable) 索引和切片(indexing and slicing) 序列解包(sequence unpacking) 不可修改的(immutable) named tupl ...

  8. Python 列表元组字典集合

    列表(list) 有序性,可存储任意类型的值 通过偏移存取,支持索引来读取元素,第一个索引为0 ,倒数第一个索引为-1 可变性 ,支持切片.合并.删除等操作 可通过索引来向指定位置插入元素 可通过po ...

  9. Python列表/元组/字典/集合详解

    本文是对Python中的列表.元组.字典.集合知识的梳理总结,将Python的重要知识点梳理成条,通过一个简单的员工管理系统(EMS)实战,可以深入的了解Python的基本知识.本文基本上涵盖了在日常 ...

  10. Python基础-元组字典集合

    文章目录 一.tuple元组 1.概述 2.创建元组 3.元组元素的访问 4.元组操作 5.元组功能 6.二维元组 二.字典dict 1.概念 2.定义字典 三.set集合 1.概述 2.创建 3.操 ...

最新文章

  1. 开工了!三位大咖给你指路:未来 3~5 年内,哪个方向的机器学习人才最紧缺?
  2. Android 团队早期员工解释 Android 哪里不如 iOS
  3. ClientScriptManager.RegisterStartupScript.
  4. linux杀死tomcat进程6,Linux下启动停止查看杀死Tomcat进程(示例代码)
  5. 业务数据全用上也喂不饱AI?试试这个小样本学习工具包
  6. hadoop+hive-0.10.0完全分布式安装方法
  7. springboot 主键重复导致数据重复_程序员:MySQL处理插入过程中主键或唯一键重复值的解决办法
  8. Oracle中无法解析TNS的陷阱
  9. 时间管理类APP的Demo版本
  10. 华为内部狂转好文:有关大数据,看这一篇就够了
  11. 高通平台camera bring-up
  12. C#高级知识点(ABP框架理论学习高级篇)——白金版
  13. 程序员(应届生)求职简历模板+LaTex(overleaf)简历制作+博士简历模板分享+简历赏析
  14. 微商引流的六种有效方法
  15. 细胞治疗质量控制解决方案
  16. 现货白银最低门槛是啥?
  17. java getselectedrow_Java JTable.getSelectedRow方法代碼示例
  18. 软件实施是一个什么样的职位?
  19. OpenLayers3基础教程——OL3基本概念
  20. 从爬虫构建数据集到CNN模型的验证码识别,一步一步搭建基于Python的PC个人端12306抢票程序

热门文章

  1. JAVA泛型-泛型方法的定义和使用
  2. 如何把c语言编程成hex,怎么把c文件变成hex文件格式
  3. 求助可移动磁盘显示没有格式化
  4. 计算机仿真实验碰撞实验原理,车辆正面碰撞中的耐撞性能仿真分析
  5. 一个基于nodejs的青果教务系统的爬虫
  6. 首月流水2.39亿美元,《原神》的发行策略是什么?
  7. 你负债了吗? 聊聊“去杠杆”!
  8. ARM启动流程及启动代码分析
  9. c语言的字符与字符串拼接,详解C语言中的字符串拼接(堆与栈)
  10. python3爬虫扒云班课资源