python学习笔记day_05

本文深入探讨了Python中的四种主要数据结构:列表、元组、字典及集合的特点与使用方法。详细介绍了每种数据结构的创建方式、常用操作及其应用场景,并对比了它们之间的差异。

一、元组

-元组的创建方式
	-直接小括号 t=('python','hello',90)
	-使用内置函数tuple() t=tuple(('python','hello',90))
	-只包含一个元组的元素需要使用逗号和小括号 t=(10,)
-为什么要将元组设计成不可变序列
	-在多任务环境下,同时操作对象时不需要加锁
	-因此,在程序中尽量使用不可变序列
-注意事项
	-元组中存储的是对象的引用
		-如果元组中对象本身不可对象,则不能再引用其它对象
		-如果元组中对象本身是可变对象,则可变对象的引用不允许改变,但数据可以改变
-元组的遍历
	-元组是可迭代对象,所以可以使用for-in进行遍历

二、集合 无序的

-什么是集合
	-python语言提供的内置数据结构
	-与列表、字典一样都属于可变数据类型
	-集合是没有value的字典
-创建方式
	-直接{}
		s={'python','hello',90}
	-使用内置函数set()
-集合的相关操作
	-集合元素的判断操作
		-in或not in
	-集合元素的新增操作
		-调用add()方法,一次添加一个元素
		-调用update()方法至少添加一个元素
	-集合元素的删除操作
		-调用remove()方法,一次删除一个指定元素,如果指定的元素不存在抛出keyerror
		-调用discard()方法,一次删除一个指定元素,如果指定的元素不存在不抛出异常
		-调用pop()方法,一次删除一个任意元素,即删除谁随机
		-调用clear()方法,清空集合
-集合之间的关系
	-两个集合是否相等
		-可以使用运算符==或!=进行判断
	-一个集合是否是另一个集合的子集
		-可以调用方法issubset进行判断
		-B是A的子集
	-一个集合是否是另一个集合的超集
		-可以调用方法issuperset进行判断
		-A是B的超集(即B是A的子集)
	-两个集合是否是没有交集
		-可以调用方法isdisjoint进行判断(有交集为false 没有交集为true)
-集合之间的数学操作
	-交集 intersection &
	-并集 union |
	-差集 difference - 在A中去掉B中含有的元素
	-对称差集 symmetric_difference ^ A中独有的元素和B中独有的元素
-集合生成式
	-用于生成集合的公式
	-将{}修改为[]就是列表生成式
	-没有元组生成式

三、列表、字典、元组、集合的总结

-列表 可变 可重复 有序 []
-元组 不可变 可重复 有序 ()
-字典 可变 Key不可重复 value可重复 无序 {key:value}
-集合 可变 不可重复 无序 {}

四、字符串的驻留机制

-字符串
	-在python中字符串是基本数据类型,是一个不可变的字符序列
-什么叫字符串驻留机制呢?
	-仅保留一份相同且不可变字符串的方法,不同的值被存放在字符串的驻留池中,python的驻留机制对相同的字符串
	-只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋给新创建的变量
-驻留机制的几种情况
	-字符串的长度为0或1时
	-符合标识的字符串
	-字符串只在编译时进行驻留,而非运行时
	-[-5,266]之间的整数数字
-sys中的intern方法强制2个字符串指向同一个对象
-pycharm对字符串进行了优化处理
-在需要进行字符串拼接时建议使用str类型的join方法,而非+,因为join()方法是先计算出所有字符中的长度,然后再拷贝,只new一次对象,效率要比+效率高
-字符串的查询操作方法
	-查询方法
		-index()
			-查找子串substr第一次出现的位置,如果查找的子串不存在时,则抛出valueerror
		-rindex()
			-查找子串substr最后一次出现的位置,如果查找的子串不存在时,则抛出valueerror
		-find()
			-查找子串substr第一次出现的位置,如果查找的子串不存在时,则返回-1
		-rfind()
			-查找子串substr最后一次出现的位置,如果查找的子串不存在时,则返回-1
-字符串的大小写转换操作方法
	-upper()
		-所有字符变大写
	-lower()
		-所有字符变小写
	-swapcase()
		-所有大写变小写,小写变大写
	-capitalize()
		-第一个字符变大写,其余的变小写
	-title()
		-每个单词的第一个字符变大写,每个单词剩余字符换小写
-字符串内容对齐操作的方法
	-center()居中对齐,第一个参数指定宽度,第二个参数指定填充字符,第二个参数可选,默认是空格,如果设置宽度小于实际宽度则返回原字符串
	-ljust()左对齐,第一个参数指定宽度,第二个参数指定填充字符,第二个参数可选,默认是空格,如果设置宽度小于实际宽度则返回原字符串
	-rjust()右对齐,第一个参数指定宽度,第二个参数指定填充字符,第二个参数可选,默认是空格,如果设置宽度小于实际宽度则返回原字符串
	-zfill()右对齐,左边用0填充,该方法只接收一个参数,用于指定字符串的宽度,如果指定的宽度小于等于字符串长度,返回字符串本身
-字符串劈分操作的方法
	-split()
		-从字符串的左边开始劈分,默认劈分字符是空格字符串,返回的值都是一个列表
		-以通过参数sep指定劈分字符串是的劈分符
		-通过参数maxsplit指定劈分字符时的最大劈分次数,在经过最大劈分之后,剩余的子串会单独作为一部分
	-rsplit()
		-从字符串的右边开始劈分,默认劈分字符是空格字符串,返回的值都是一个列表
		-以通过参数sep指定劈分字符串是的劈分符
		-通过参数maxsplit指定劈分字符时的最大劈分次数,在经过最大劈分之后,剩余的子串会单独作为一部分
-判断字符串操作的方法
	-isidentifier() 判断字符串是不是合法的标识符
	-isspace() 判断指定的字符串是否全部由空白字符串组成(回车、换行、水平制表符等)
	-isalpha() 判断指定的字符串是否全部由字母组成
	-isdecimal() 判断指定的字符串是否全部由十进制数字组成
	-isnumeric() 判断指定的字符串是否全部由数字组成
	-isalnum() 判断指定的字符串是否全部由字母和数字组成
-字符串操作的其他方法
	-字符串替换 replace() 第一个参数指定被替换的子串,第二个参数指定替换子串的字符串,替换前的字符串不变,第三个参数是最大替换次数
	-字符串合并 join() 将列表或元组中的字符串合成一个字符串
-字符串的比较操作
	-运算符 >、<、>=、<=、==、!=
	-比较规则:首先比较两个字符串中的第一个字符,如果相等则继续比较下一个字符,一次比较下去,直到两个字符串中的字符不相等时
	-其比较结果就是两个字符串的比较结果,两个字符串中的所有后续字符将不再被比较
	-比较原理:两个字符进行比较时,比较的是其ordinal value(原始值),调用内置函数ord可以得到指定字符ordinal value。与内置函数
	-ord对应的是内置函数chr调用内置函数chr时指定ordinal value可以得到其对应的字符
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leon.shadow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值