字符与序列
字符串常用操作
name.strip() 去掉空格和换行符
name.strip('xx') 去掉某个字符串
name.lstrip() 去掉左边的空格和字符串
name.rstrip() 去掉右边的空格和字符串
name.count('x') 查找某个字符在字符串里出现的次数
name.capitalize() 首字母大写
name.center(n,-) 把字符串放中间,两边用-补齐
name.find('x') 找到这个字符后返回下标,多个时返回第一个;不存在的返回-1
name.index('x') 找到这个字符后返回下标,多个时返回第一个;不存在的报错
name.replace(oldstr,newstr) 字符串替换
name.format() 字符串格式化
name.format_map(d) 字符串格式化,传递进去的是一个字典
S.stratswith(prefix) 是否以prefix开头
S.endswith(suffix) 是否以suffix结尾
S.isalnum() 是否全是字母数字,并至少有一个字符
S.isalpha() 是否全是字母,并至少有一个字符
S.isdigit() 是否全是数字,并至少有一个字符
S.isspace() 是否全是空白字符,并至少有一个字符
S.islower() S中的字母是否全是小写
S.isupper() S中的字母是否全是大写
S.istitle() S是否首字母大写
name.split() 默认按照空格分隔
name.split(',') 按照逗号分隔
','.jion(slit) 用逗号连接slit,变成一个字符串,slit可以是字符、列表、字典(可迭代对象)
计算字符串的长度
len(s)
注:一个中文字符算两个字符
字母大小写的转换
s.upper() 转为大写
s.lower() 转为小写
s.title() 所有单词首字母大写
s.capitalize() 开头首字母大写
字符串的分隔
当使用以冒号分隔的字符串时,Python返回一个新的对象,结果包含了以这对偏移标识的连续的内容,包含下边界,不包含上边界
split() 函数
str.split(str="",num=string.count(str))
参数str 为分隔符 num为分隔的次数
字符串的拼接
字符串拼接就是将多个字符串合并成一个字符串。
可分为三类:
- 格式化类: % format() 面向对象模板拼接
- 拼接类: + () join()
- 插值类: f-string
拼接长度不超过20时,选用+号方式;当需要处理字符串列表等序列结构时,采用join方式;对于长度超过20的情况,高版本选用f-string方式,低版本时看情况使用format()或join()方式
1.来自C语言的%拼接方式
print('%s %s'%('Hello','world'))
%s 是一个占位符,他仅代表一段字符串,并不是拼接的实际内容
占位符还有%d(代表一个整数) %f(代表一个浮点数) %x(代表一个十六进制数)
%占位符既是这种拼接方式的特点,同时也是限制因素,因为每种占位符都有特定的意义,实际使用很麻烦
2.format()
s1='Hello {} ! My name is {}'.format('World','python')
s2='Hello {0} ! My name is {1}'.format('World','python')
3.类似元组方式
s_like_tuple=('Hello' ' ' 'world')
4.面向对象模板拼接(略)
5.常用的+号方式
str1='hello'
str2='world'
print(str1+str2)
当拼接的最终字符串长度不超过20时,+号方式会比后面提到的join()等方式要快得多
6.join()拼接方式
超过二十字符,最好用这种拼接方式
str1=['hello','world']
str2=' '.joint(str1)
str3=' '.joint(str1)
比较适合于连接序列对象中的元素,并设置统一的分隔符,在做拼接时,元素若不是字符串,需要先转换一下
join() 拼接方式的缺点是, 不适合进行零散片段的、不属于序列或集合的元素的拼接
7.f-string方式
a='world'
b='python'
words=f'Hello {name}.My name is {myname}.'
字符串查找
str.find(str,beg=0,end=len(string))
str表示指定检索的字符串;
beg表示开始索引,默认为0;
end表示结束索引,默认为字符串的长度。
返回的结果为子串所在位置的最左端索引,如果没有找到,则返回-1
字符串替换
str.repalce(old,new[max])
参数old指的是将被替换的子字符串;
参数new是一个新字符串,用于替换old子字符串
参数max为可选字符串,替换不超过max次
统计字符出现次数
count()方法用于统计字符串里某个字符出现的次数,可选参数是在字符串中进行搜索的开始与结束位置,返回结果是子字符串在字符串中出现的次数
str.count(sub,start=0,end=len(string))
参数sub指的是搜索的子字符串
参数start指的是搜索的开始位置
参数end指的是搜索的结束位置
序列
列表 元组 字符串 Unicode字符串 buffer对象 xrange对象
索引
序列中的所有元素都是有编号的,从0开始递增
切片
通过冒号相隔的两个索引来实现分片
还可使用步长
序列相加
将序列首尾相接
序列乘法
检查某个元素是否是序列的成员
in 运算符
计算序列的长度、最大值、最小值
len()
max()
min()
列表
为了创建一个列表,只需要把逗号分隔的的不同数据项使用方括号括起来即可
list=['x','y','z']
lst.append(x) 将元素x添加至列表lst的尾部
lst.extend(L) 列表中的所有元素添加至列表lst的尾部
lst.insert(index,x) 在列表lst中,在指定位置index处添加元素x,该位置后面的所有元素后移
lst.remove(x) 在列表中删除首次出现的指定元素,将该元素之后的所有元素前移
lst.pop(index) 删除并返回列表lst中下标为index的元素
lst.clear() 删除列表中的所有元素,但保留列表对象
lst.index(x) 返回列表中第一个值为x的元素的下标,若不存在值为x的元素,则抛出异常
lst.count(x) 返回指定元素x在列表中出现的次数
lst.reverse() 对列表中的所有元素进行逆序操作
lst.sort(key=none,reverse=false) 对列表中的元素进行排序,key用来指定排序依据, reverse决定升序(false)还是降序(true)
lst.copy() 返回列表的浅复制
append() 用于向列表尾部追加一个元素
insert() 用于向列表的任意指定位置插入一个元素
extend() 用于将另一个列表中的元素追加至当前列表的尾部
pop() 用于删除并返回指定的元素
remove() 用于删除列表中第一个元素值与指定值相等的元素
clear() 用于清空列表
del() 删除列表中指定位置的元素
count() 用于返回列表中指定元素出现的次数
index() 用于返回指定元素在列表中首次出现的位置,如果不存在,则抛出异常
in() 测试列表中是否存在某个元素
sum() 用于返回数值型列表中所有元素之和
len() 用于返回列表中元素的个数
zip() 用于将多个列表中的元素重新组合为元组并返回包括这些元组的zip对象
enumerate() 用于返回包含若干下标和值的迭代对象
列表推导式
[表达式 for 变量 in 序列或迭代对象]
元组
元组只需要在圆括号中添加元素,并使用逗号隔开即可
只有一个元素时,需要在后面加上逗号
元组是只读列表,数据可以被查询,不能被修改
生成器
for item in gen:
定义一个函数,这个函数是一步步执行的,并能保存状态,这就是迭代器
字典
字典是一种可变容器模型, 并且可存储任意类型对象,如字符串、数字、元组等其他容器模型
字典由键和对应值成对组成
cmp(dict1,dict2) 比较两个字典元素
len(dict) 计算字典元素的个数,即建的总数
str(dict) 输出字典可打印的字符串表示形式
type(variable) 返回输入的变量类型,如果变量是字典,就返回字典类型
dict.clear() 删除字典内所有元素
dict.copy() 返回字典的签复制
dict.fromkeys(seq) 创建一个新字典,以序列seq中的元素作为字典的键,val为字典所有键对应的初始值
dict.get(key,default=None) 返回指定键的值,如果值不在字典中,就返回default值
dict.has_key(key) 如果键在字典中,返回true,否则返回false
dict.items() 以列表形式返回可遍历的键值元组数组
dict.keys() 以列表形式返回一个字典中所有的键
dict.update(dict2) 把字典dict2的键值对更新到dict中
dict.values() 以列表形式返回字典中的所有值
集合
集合是一种无需的不重复序列,可用花括号{}或set() 函数创建集合
创建一个空集合必须使用set()而不是{}
add() 为集合添加元素
clear() 移除集合中的所有元素
copy() 拷贝集合
difference() 返回多个集合的差集
difference_update() 移除集合中的元素,该元素在指定的集合中也存在
discard() 删除集合中指定的元素
intersection() 返回集合的交集
intersection_update() 删除集合中的元素,该元素在指定的集合中不存在
isdisjoint() 判断两个集合是否包含相同的元素,如果包含,返回true,否则返回false
issubset() 判断指定集合是否为该方法的参数集合的子集
issuperset() 判断该方法的参数集合是否为指定集合的子集
pop() 随机移除元素
remove() 移除指定元素
symmetric_difference() 返回两个集合中不重复元素的集合
symmetric_difference_update() 移除当前集合中与另一个指定集合中相同的元素,并将另一个指定集合中不同的元素插入当前集合中
union() 返回两个集合的并集
update() 给集合更新元素