Python学习 -元组和集合
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学习 -元组和集合相关推荐
- python列表元组字典集合实验心得_python学习小总结(列表、元组、字典、集合、字符串)...
---恢复内容开始--- 一.列表(list) 1.添加 append():追加,在列表末尾添加元素. 列表名.append(添加的元素) extend():扩展,在列表末尾添加元素. 列表名.ext ...
- SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理
SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理 本文连接 简介 SIGIA_4P 网址 a. 课程OKR Objectives and ...
- Python学习笔记:集合(set)
Python学习笔记:集合(set) 1.集合概念 集合是互异元素的无序集合.类似于只有键没有值的字典. 2.创建集合 有两种方法创建集合:一个是利用set函数,一个是利用花括号创建集合字面量. 3. ...
- python学习-元组tuple(定义、删除、长度、复制、查找、遍历、operator,和列表的区别)
元组tuple 元组的创建 元组的使用 使用进阶 元组和列表的区别 元组的创建 Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组的创建,使用()或在定义变量以后添加一个逗号(,) ...
- 【Python】元组与集合
一.元组 Python 的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可 定义空元组 print(tup ...
- 【Python从零到壹】Python的元组和集合
文章目录 1. 元组的概念 1) 什么是元组 2) 元组的创建方式 作者:互联网老辛 开发时间:2021/4/4/0004 6:54 2. 元组的遍历 3.集合的概念 1) 什么是集合 2) 集合的创 ...
- python学习-元组的复习及进阶使用(iterable、indexing and slicing、sequence unpacking、immutable、named tuple)
文章目录 可迭代的(iterable) 索引和切片(indexing and slicing) 序列解包(sequence unpacking) 不可修改的(immutable) named tupl ...
- Python 列表元组字典集合
列表(list) 有序性,可存储任意类型的值 通过偏移存取,支持索引来读取元素,第一个索引为0 ,倒数第一个索引为-1 可变性 ,支持切片.合并.删除等操作 可通过索引来向指定位置插入元素 可通过po ...
- Python列表/元组/字典/集合详解
本文是对Python中的列表.元组.字典.集合知识的梳理总结,将Python的重要知识点梳理成条,通过一个简单的员工管理系统(EMS)实战,可以深入的了解Python的基本知识.本文基本上涵盖了在日常 ...
- Python基础-元组字典集合
文章目录 一.tuple元组 1.概述 2.创建元组 3.元组元素的访问 4.元组操作 5.元组功能 6.二维元组 二.字典dict 1.概念 2.定义字典 三.set集合 1.概述 2.创建 3.操 ...
最新文章
- 开工了!三位大咖给你指路:未来 3~5 年内,哪个方向的机器学习人才最紧缺?
- Android 团队早期员工解释 Android 哪里不如 iOS
- ClientScriptManager.RegisterStartupScript.
- linux杀死tomcat进程6,Linux下启动停止查看杀死Tomcat进程(示例代码)
- 业务数据全用上也喂不饱AI?试试这个小样本学习工具包
- hadoop+hive-0.10.0完全分布式安装方法
- springboot 主键重复导致数据重复_程序员:MySQL处理插入过程中主键或唯一键重复值的解决办法
- Oracle中无法解析TNS的陷阱
- 时间管理类APP的Demo版本
- 华为内部狂转好文:有关大数据,看这一篇就够了
- 高通平台camera bring-up
- C#高级知识点(ABP框架理论学习高级篇)——白金版
- 程序员(应届生)求职简历模板+LaTex(overleaf)简历制作+博士简历模板分享+简历赏析
- 微商引流的六种有效方法
- 细胞治疗质量控制解决方案
- 现货白银最低门槛是啥?
- java getselectedrow_Java JTable.getSelectedRow方法代碼示例
- 软件实施是一个什么样的职位?
- OpenLayers3基础教程——OL3基本概念
- 从爬虫构建数据集到CNN模型的验证码识别,一步一步搭建基于Python的PC个人端12306抢票程序