目录
2.是否为子集:issubset;是否为超集:issuperset。
4.对称差集:内置函数symmetric-difference或 ^
前言
元组与集合的概念及使用方法
字符串的概念和使用方法
一、什么是元组
元组是一个不可变序列(不可变序列就没有“增删改”的操作,不然会使元组的id发生改变);在程序应用中尽量使用不可变序列。元组是不允许去修改元素的
二、元组的创建方式
1.()圆括号直接创建
例:t = ('python','holle','world')
当含有多个元素时,可以省略();只包含一个元组的元素需要使用逗号和小括号。
例:t = (10,)
2.使用内置函数tuple()
例:t1 = tuple(('holle',100,'world'))
3.创建空元组
例:t4 = ()
t5 = tuple()
三、元组的遍历
1.第一种获取元组元素的方式,使用索引
2.遍历元组
例:t = ('holle','world',100)
for item in t
print(item)
四、什么是集合
集合与字典、列表一样属于可变序列,但集合是没有value的字典
五、集合的创建方式
1.直接用大括号{}
当集合不允许出现重复的元素,不然会省略
例:s = {3,4,5,7,8}
2.使用内置函数set()
3.创建空集合
如果不加函数set,则会生成字典类型的空字典
例:t8 = set()
六、集合的相关操作
1.判断出元素是否在集合当中。
判断结果为bool类型
例:print(10 in s)
print(10 not in s)
2.集合的新增删减操作
s.add();一次添加一个元素
s.update()一次添加一组元素;
s.remove();一次删除指定一个元素,如果元素不存在则报错KeyError
s.discard();一次删除指定一个元素,如果元素不存在不报错
s.pop();一次删除一个任意元素
s.clear()清空集合
例:s = {12,23,45,65,68,345,86}
s.add(80)
s.update([200,400])
s.remove(12)
s.discard(33)
s.pop()#不能添加参数
s.clear()
七、集合间的关系
1.相等与不相等:==与!=
集合中元素相等则两集合相等
2.是否为子集:issubset;是否为超集:issuperset。
例:s1 = {1,2,3,4,5,6}
s2 = {1,2,3}
print(s1.issubset(s2))
print(s2.issuoerset(s1))
3.是否没有交集:isdisjoint
八、集合的数学操作
1.交集:内置函数intersection或 &
s1 = {10,1,2,3,4}
s2 = {6,7,8,9}
print(s1.intersection(s2))
print(s1 & s2)
2.并集操作:内置函数union或 |
3.差集操作:内置函数difference或 -
4.对称差集:内置函数symmetric-difference或 ^
九、集合生成式
例:s = {i for i in range(6)}
集合生成式与列表生成式区别在于括号
总结
数据结构 | 是否可变 | 是否可重复 | 定义符号 |
元组(tuple) | 不可变 | 可重复 | ( ) |
列表(list) | 可变 | 可重复 | [ ] |
字典(dict) | 可变 | key不可重复,value(可重复) | {key:value} |
集合(set) | 可变 | 不可重复 | { } |
十、字符串的驻留机制
十一、字符串的查询操作
可使用内置函数:index( )查找字符串第一次出现的位置,错误则报错;
rindex( )查找字符串最后一次出现的位置,错误则报错;
find( )查找字符串第一次出现的位置,错误则返回-1;
rfind( )查找字符串最后一次出现的位置,错误则返回-1。
十二、字符串的大小写转换操作
可使用内置函数:upper( )把所有字符串转换为大写字母
lower( )把所有字符串转换为小写字母
swapcase( )大小写字母互转换
capitalize( )把一个字母转换为大写,其余字符转换为小写
title( )把每个字符串的第一个字符转换为大写,字符串的剩余转换为小写
十三、字符串内容对齐操作
可使用内置函数:center( )居中对齐 第一个参数指定宽度,第二个参数指定填充符
ljust( )左对齐 ~~~~~~
rjust( )右对齐 ~~~~~~
zfill( )右对齐 左边用0对齐,只有一个参数指定宽度
十四、字符串的劈分操作
可使用内置函数:split( )左侧开始劈分 默认分隔符为空格,可用参数sep指定分隔符,参数maxsplit指定最大劈分次数
rsplit( )右侧开始劈分
十五、判断字符串的操作
可使用内置函数:isdentifier( )判断是否为合法的标识符
isspace( )判断是否全为空白字符组成
isalpha( )判断是否全为字母组成
isnumeric( )判断是否全为数字组成
isalnum( )判断是否全为字母和数字组成
十六、字符串的其他操作
可使用内置函数:replace( ) 第一个参数为被替换字符串,第二个参数为替换的字符串,第三个参 数指定最大替换次数
join( )将列表或元组的字符串合并成一个字符串
十七、字符串的比较操作
比较符:<,>,== and so on
比较规则:首先比较两个字符串的第一个字符,如果相等继续比较下一个字符,依次比较下去直到两个字符不相等时。
比较原理:两个字符比较时,比较的是ord(原始值),可使用内置函数ord可以得到指定字符的ordinal value。于内置函数ord对应的是内置函数chr,调用内置函数chr指定ordinal value可得到指定字符。
十八、字符串的切片操作
例:s = {'holleworld!'}
s[start:end:step]
十九、格式化字符串操作
1.占位符 % (%s指定字符串,%d指定数字)
name = '张三'
age = 20
print('我叫%s,今年%d岁' % (name,age))
2.占位符 {}
name = '张三'
age = 20
print('我叫{0},今年{1}岁' .format(name,age))
3.占位符 f-string
name = '张三'
age = 20
print(f'我叫{name},今年{age}岁')
4.特别的:
例:#%10d表示(占10宽度的整数) %.3f表示(占小数点后3位)
print('{0:.3}'.format(3.1415926)) #.3表示一共三位数
print('{:.3f}'.format(3.1415926)) #.3f表示有3位小数
print('{:10.3f}'.format(3.1415926)) #同时设置宽度和精度,一共10位数,3位小数
二十、字符串的编码转换
s = '床前明月光'
#编码
print(s.encode(encoding='GBK')) #在GBK编码格中,一个中文占两个字节
print(s.encode(encoding='UTF-8')) #在UTF-8编码格中,一个中文占一个字节
#解码
byte = s.encode(encoding='GBK')#编码
print(btye.decode(encoding='GBK'))#解码