【python学习】python容器、对象、序列的小知识
2021/10/4 17:13:01
本文主要是介绍【python学习】python容器、对象、序列的小知识,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
中国史之【行禅让】:
尧舜时期实行禅让制度。尧是黄帝以后比较著名的部落联盟首领,尧去世前,尧把部落联盟首领位置让于舜,推舜为帝。尧舜禅让时要经过“四岳十二牧”的同意,这种让位,历史上称为“禅让”。
-来源:全历史APP
今天讲python的容器、对象、序列的一些小知识。有需要的也可以直接去我的github查看全部笔记:
https://github.com/JackKoLing/python_notes_with_ten_days
俗话说:“好记性不如烂笔头”,多写写多记记,总不会错。多一些不为什么的坚持,少一些功利主义的追求。
对于环境的配置,可以参考以下两篇:
- win10版 @小保,公众号:CV之道
【深度学习环境配置】手把手实战配置深度学习环境(win10版) - Linux版 @小保,公众号:CV之道
【深度学习环境配置】手把手实战配置深度学习环境(Ubuntu20.04版)。
1 容器
(1)容器概念:
容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中。
参考链接:
https://www.cnblogs.com/LaoYuanStudyPython/p/12950050.html
(2)相关知识:
- 容器是一种可以包含其他类型对象(如列表、元组、字典等)作为元素的对象
- 容器仅仅只是用来存放数据的,我们平常看到的 l = [1,2,3,4]等等,好像我们可以直接从列表这个容器中取出元素,但事实上容器并不提供这种能力,而是可迭代对象赋予了容器这种能力
- 列表、元组、字典等容器可以在不使用续行符’'的操作下,直接分步写于多行。最后一个元素后面可以使用逗号,多一个逗号不影响。但是空元素不能使用逗号
l1 = [1, 2, 3,] print(l1) >>> [1, 2, 3]
2 对象
(1)对象概念:
面向对象程序设计(OOP)以对象为核心,该方法认为程序由一系列对象组成。类是对现实世界的抽象,包括表示静态属性的数据和对数据的操作,对象是类的实例化。
(2)相关知识:
- 对象间通过消息传递相互通信,来模拟现实世界中不同实体间的联系。在面向对象的程序设计中,对象是组成程序的基本模块。
- 在python中,一个对象的特征也称为属性(attribute)。它所具有的行为也称为方法(method)。所以:对象=属性+方法。
- 在python中,把具有相同属性和方法的对象归为一个类(class)。
- 所有对象都有引用次数,如果为某个对象指定新名称,或者将对象放进一个容器时,都会导致其引用次数增加。当引用次数为0时,可以被垃圾回收机制回收。当删除引用对象时,引用次数会减一。
name = 'jackko' import sys print(sys.getrefcount(name)) # 显示对象的引用次数 hello = 'jackko' print(sys.getrefcount(name)) # 增加引用次数 del(hello) print(sys.getrefcount(name)) # 减少引用次数 >>> 3 4 3
- Python中的所有对象都是“第一类”,这意味着使用标识符命名的所有对象都具有相同状态。于是,能够命名的所有对象都可以直接当数据进行处理
a = 4 b = 3 print(a / b) # 普通除法 print(a // b) # 整除 >>> 1.3333333333333333 1
(3)对于列表、字典,都支持两种类型的复制操作:
- 浅复制:如l2 = l1,创建一个新对象,但包含的元素是l1对象的引用,所以指向同一个位置。l1改,l2就会修改
- 深复制:如l2 = copy.deepcopy(l1)。创建一个新对象,并且递归复制l1中的所有对象。l1改,l2不会改
l1 = [1, 2, 3] l2 = l1 # 浅复制 import copy l3 = copy.deepcopy(l1) # 深复制 print(l2) print(l3) >>> [1, 2, 3] [1, 2, 3] l1[2] = 4 print(l2) # 浅复制导致l2也会跟着改变 print(l3) >>> [1, 2, 4] [1, 2, 3]
3 序列
(1)序列概念:
- 所谓序列,指的是一块可存放多个值的连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引)访问它们。
- 为了更形象的认识序列,可以将它看做是一家旅店,那么店中的每个房间就如同序列存储数据的一个个内存空间,每个房间所特有的房间号就相当于索引值。也就是说,通过房间号(索引)我们可以找到这家旅店(序列)中的每个房间(内存空间)。
- 在 Python 中,序列类型包括字符串、列表、元组、集合和字典。
参考:
http://c.biancheng.net/view/4312.html
(2)相关知识:
1)序列的特性:
- 序列是索引为非负整数的有序对象集合,包括:字符串、列表、元组
- 其中字符串和元组是不可变序列,而列表支持插入、删除和替换元素
- 所有序列都支持迭代
- 序列本身支持可修改,所以支持在原处进行插入、删除、替换等操作,但字符串和元组不支持
- 列表和元组能包含任意的python对象序列,因为是容器。但字符串只能使用字符
2)所有序列都支持的操作和方法:
- s[i]:索引运算符
- s[i:j]为切片运算符,s[i:j:stride]为扩展切片运算符
- len(s)长度
- min(s)和max(s)只适用于能够对元素排序的序列
- sum(s)只适用于数字序列
- all(s)检查是否所有项为True
- any(s)若元素都是 0、空、FALSE,则为False,其余都是TRUE
- s1 + s2:连接
- s1 * N:重复
- obj in s1:成员关系判断
- obj not in s1
3)可变序列的操作:
- s1[index] = value 元素赋值
- s1[i:j] = t 切片赋值
- s1[i:j:stride] 扩展切片赋值
- del s1[index]
- del s1[i:j]
- del s1[i:j:stride]
【声明】:学习笔记基于互联网上各种学习资源的个人整理。
以上是本期内容,下期介绍python的表达式、优先级等。
我叫小保,一名计算机视觉爱好者、学习者、追随者,欢迎关注我一起学习。
这篇关于【python学习】python容器、对象、序列的小知识的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享