目录
一、字符串string
1、字符串方法
2.字符串排版
3. 字符串判断 is系列
4. 字符串格式化
二、集合
1. 定义
2. 方法
3. 集合运算
4. 集合应用
定义:
lst = list(sql)
切片
str = 'abc'
str[1:2]
字符串拼接:
str1 + str2
1. replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次
count表示替换几次,不指定就是全部替换
2. find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1。
str.find(str,beg = 0,end = len(str))
rfind(sub[, start[, end]]) -> int
在指定的区间[start, end),从右至左,查找子串sub。找到返回索引,没找到返回-1
index() 和find()方法相似,唯一的区别就是find方法不包含索引值会返回-1,而index()不包含索引值会抛出异常。
3. join()连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串。join是重要的字符串方法,用来在队列中添加元素。
注意:需要添加的元素必须都是字符串。
示例:
str.join(sequence)
lst = ['1','2','3']
print("\"".join(lst)) # 分隔符是双引号
字符串分割
分割字符串的方法分为2类
split系:将字符串按照分隔符分割成若干字符串,并返回列表
partition系:将字符串按照分隔符分割成2段,返回这2段和分隔符的元组
1. split() 和join方法相反,split方法把字符串分成序列
split(sep=None, maxsplit=-1) -> list of strings
rsplit(sep=None, maxsplit=-1) -> list of strings
splitlines([keepends]) -> list of strings
1. 按照行来切分字符串
2. keepends 指的是是否保留行分隔符
3. 行分隔符包括\n、\r\n、\r等
'ab c\n\nde fg\rkl\r\n'.splitlines()
'ab c\n\nde fg\rkl\r\n'.splitlines(True)
s1 = '''I'm a super student.
You're a super teacher.'''
print(s1)
print(s1.splitlines())
print(s1.splitlines(True))
2. partition(sep) -> (head, sep, tail)
1. 从左至右,遇到分隔符就把字符串分割成两部分,返回头、分隔符、尾三部分的三元组;如果 没有找到分隔符,就返回头、2个空元素的三元组
2. sep 分割字符串,必须指定
s1 = "I'm a super student."
s1.partition('s')
s1.partition('stu')
s1.partition('')
s1.partition('abc')
rpartition(sep) -> (head, sep, tail)
从右至左,遇到分隔符就把字符串分割成两部分,返回头、分隔符、尾三部分的三元组;如果 没有找到分隔符,就返回2个空元素和尾的三元组
len() 方法返回对象(字符、列表、元组等)长度或项目个数
count(sub[, start[, end]]) -> int 在指定的区间[start, end),从左至右,统计子串sub出现的次数
lower() 方法转换字符串中所有大写字符为小写。
upper()方法转换字符串中所有小写字符为大写。
swapcase() 交互大小写,原来是大写转换为小写,原来是小写转换为大写
1. title() -> str 标题的每个单词首字母都大写
2. capitalize() -> str 首个单词大写
3. center(width[, fillchar]) -> str
a) width 打印宽度
b) fillchar 填充的字符
4. zfill(width) -> str
width 打印宽度,居右,左边用0填充
5. ljust(width[, fillchar]) -> str 左对齐
6. rjust(width[, fillchar]) -> str 右对齐
7. strip([chars]) -> str
从字符串两端去除指定的字符集chars中的所有字符
如果chars没有指定,去除两端的空白字符
s = "\r \n \t Hello Python \n \t"
s.strip()
s = " I am very very very sorry "
s.strip('Iy')
lstrip([chars]) -> str
从左开始
rstrip([chars]) -> str
从右开始
endswith(suffix[, start[, end]]) -> bool
在指定的区间[start, end),字符串是否是suffix结尾
startswith(prefix[, start[, end]]) -> bool
在指定的区间[start, end),字符串是否是prefix开头
format函数格式字符串语法
"{} {xxx}".format(*args, **kwargs) -> str
花括号表示占位符
位置参数
关键字参数或命名参数
"{server} {1}:{0}".format(8888, '192.168.1.100', server='Web Server ') ,位置参数按照序号匹配, 关键字参数按照名词匹配
访问元素
"{0[0]}.{0[1]}".format(('test','com'))
对象属性访问
from collections import namedtuple
Point = namedtuple('Point','x y')
p = Point(4,5)
"{{{0.x},{0.y}}}".format(p)
可变的、无序的、不重复的元素的集合
初始化:
set() -> new empty set object
set(iterable) -> new set object
要求:
增加
add(elem)
update(*others)
删除
remove(elem)
discard(elem)
pop() -> item
clear()
修改、查询
集合基本概念:
集合运算:
并集
将两个集合A和B的所有的元素合并到一起,组成的集合称作集合A与集合B的并集
union(*others) 返回和多个集合合并后的新的集合
| 运算符重载 等同union
update(*others) 和多个集合合并,就地修改
|= 等同update
交集
集合A和B,由所有属于A且属于B的元素组成的集合
intersection(*others) 返回和多个集合的交集
& 等同intersection
intersection_update(*others) 获取和多个集合的交集,并就地修改
&= 等同intersection_update
差集
集合A和B,由所有属于A且不属于B的元素组成的集合
difference(*others) 返回和多个集合的差集
- 等同difference
difference_update(*others) 获取和多个集合的差集并就地修改
-= 等同difference_update
对称差集
集合A和B,由所有不属于A和B的交集元素组成的集合,记作(A-B)∪(B-A) symmetric_differece(other) 返回和另一个集合的差集
^ 等同symmetric_differece
symmetric_differece_update(other) 获取和另一个集合的差集并就地修改
^= 等同symmetric_differece_update
判断集合关系
issubset(other)、<= 判断当前集合是否是other的超集
set1 > set2 判断set1是否是set的真超集
isdisjoint(other) 当前集合和另一个集合没有交集,若没有交集,返回True
共同好友
你的好友A、B、C,他的好友C、B、D,求共同好友
微信群提醒
XXX与群里其他人都不是微信朋友关系
权限判断