字符串
定义
它是一个有序的字符的集合,用于存储和表示基本的文本信息,‘’或“”或’’’ ‘’’中间包含的内容称之为字符串。
创建
res=’ hello world ‘
常用操作
- res.strip() 移除字符串两端的空白
- res.split(sep=None) 以sep为分割符,分割字符串,返回列表
- res[4],res[1:4] 索引取值,切片
字符串的搜索和替换
S.find(substr, [start, [end]]) 返回S中出现substr的第一个字母的标号,如果S中没有substr则返回-1。start和end作用就相当于在S[start:end]中搜索
S.index(substr, [start, [end]]) 与find()相同,只是在S中没有substr时,会返回一个运行时错误
S.rfind(substr, [start, [end]]) 返回S中最后出现的substr的第一个字母的标号,如果S中没有substr则返回-1,也就是说从右边算起的第一次出现的substr的首字母标号
S.rindex(substr, [start, [end]])
S.count(substr, [start, [end]]) 计算substr在S中出现的次数
S.replace(oldstr, newstr, [count]) 把S中的oldstr替换为newstr,count为替换次数。这是替换的通用形式,还有一些函数进行特殊字符的替换
S.strip([chars]) 把S中前后chars中有的字符全部去掉,可以理解为把S前后chars替换为None
S.lstrip([chars]) 把S中前chars中有的字符去掉
S.rstrip([chars]) 把S中后chars中有的字符全部去掉
S.expandtabs([tabsize] 把S中的tab字符替换没空格,每个tab替换为tabsize个空格,默认是8个
字符串的分割和组合
S.split([sep, [maxsplit]]) #以sep为分隔符,把S分成一个list。maxsplit表示分割的次数。默认的分割符为空白字符
S.rsplit([sep, [maxsplit]])
S.splitlines([keepends]) #把S按照行分割符分为一个list,keepends是一个bool值,如果为真每行后而会保留行分割符。
S.join(seq) #把seq代表的序列──字符串序列,用S连接起来字符串的mapping,这一功能包含两个函数:
String.maketrans(from, to) #返回一个256个字符组成的翻译表,其中from中的字符被一一对应地转换成to,所以from和to必须是等长的。
S.translate(table[,deletechars]) # 使用上面的函数产后的翻译表,把S进行翻译,并把deletechars中有的字符删掉。需要注意的是,如果S为unicode字符串,那么就不支持 deletechars参数,可以使用把某个字符翻译为None的方式实现相同的功能。此外还可以使用codecs模块的功能来创建更加功能强大的翻译 表。
字符串中字符大小写的变换
S.lower() #小写
S.upper() #大写
S.swapcase() #大小写互换
S.capitalize() #首字母大写
String.capwords(S) #这是模块中的方法。它把S用split()函数分开,然后用capitalize()把首字母变成大写,最后用join()合并到一起
S.title() #只有首字母大写,其余为小写,模块中没有这个方法
字符串的测试函数,返回布尔值
S.starstwith(prefix[,start[,end]]) #是否以prefix开头
S.endswith(suffix[,start[,end]]) #以suffix结尾
S.isalnum() #是否全是字母和数字,并至少有一个字符
S.isalpha() #是否全是字母,并至少有一个字符
S.isdigit() #是否全是数字,并至少有一个字符
S.isspace() #是否全是空白字符,并至少有一个字符
S.islower() #S中的字母是否全是小写
S.isupper() #S中的字母是否便是大写
S.istitle() #S是否是首字母大写的
字符串对齐输出
S.ljust(width,[fillchar]) #输出width个字符,S左对齐,不足部分用fillchar填充,默认的为空格。
S.rjust(width,[fillchar]) #右对齐
S.center(width, [fillchar]) #中间对齐
S.zfill(width) #把S变成width长,并在右对齐,不足部分用0补足
列表
定义
[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素。
特性
- 可以存放多个值。
- 可以修改指定索引位置对应的值,可变类型。
- 按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序。
创建
list_test=[‘hello’,12,(1,3,)] list_test=list(‘abc’) list_test=list([‘lhf’,12,’ok’])
常用操作
classmates = [‘Michael’, ‘Bob’, ‘Tracy’]
- 索引 classmates[0]
- 切片 classmates[0:] classmates[0::2] classmates[2::-1]
- 追加 classmates.append(‘Adam’) classmates.insert(1, ‘Jack’)
- 删除 classmates.pop() classmates.remove(‘Adam’)
常用函数
.copy() 复制
.append() 在列表后增加元素
.insert() 在索引号前增加元素
.pop() 默认从后面删除元素
.remove() 按照元素进行删除
.index() 按照元素进行查找
.clear() 清楚列表元素,原列表为空
.count() 查找元素的个数
.extend([1,2,3]) 扩展列表,将[1,2,3]列表和原列表合成一个列表
.reverse() 将列表进行倒序
.sort() 将列表中的元素按顺序排列。字符串和数字不能同时排序。.sort(reverse=True)倒序排列。
元组
定义
与列表类似,将[]该为()
特性
可存多个值,不可变,有序。
创建
t=() t=tuple([11,22,33]) t=(1,) t=(1,2,[3,4])
常用操作
ages = (11, 22, 33, 44, 55)
- 索引 ages[0]
- 切片 ages[0:] ages[-3:-1] ages[:3]
- 循环 for i in ages:print(i)
- 成员判断 11 in ages #True
字典
定义
字典是一种可变容器模型,可以存储任意类型对象。字典由键和对应值成对组成。字典也被称作关联数组或哈希表。key-value结构。key为不可变类型,即可hash。
特性
- 可存放多个值,任意类型。
- 可修改指定key对应的值,可变。
- 无序。
创建
person = {‘name’:’egon’,’age’:18}
person = dict(name=’egon’, age=18)
person = dict(([‘name’,’egon’],[‘age’,18]))
person = {}.fromkeys([‘name’,’age’],100) #不指定100默认为None
常用操作
d = {‘Michael’: 95, ‘Bob’: 75, ‘Tracy’: 85}
- 索引 d[‘Michael’]
- 新增 d[‘alex’]=100
- 删除 d.pop(‘Bob’)
- 循环 for i in d: print(i,d[i])
- 成员判断 ‘Michael’ in d # True d.get(‘Thomas’,-1) #-1
常用函数
.pop(key,’str’) 删除key对应的键值对,返回value。key不存在返回str。
.popitem() 随机删除键值对
.keys() 返回字典的所有key到dict_keys中。可以使用list(d.keys())
.values() 返回字典的valu到dict_values中,可以使用list(d.keys())
.items() 返回键值对。
.get(key,’str’) 返回key对应的值value,key不存在返回自定义的str。
.clear() 清空字典
.copy() 复制字典
{}.fromkeys([],None) 初始化字典
.update(dict) 将新字典ditct更新到原字典中,键存在覆盖值,键不存在创建键值对
集合
定义
集合,是一个无序且不重复的元素集合。集合对象是一组无序排列的可哈希的值。
创建
s = set()
s= { 11,22,33,44 }
f_set = frozenset(s) #不可变集合
注意:创建空集合只能用set(),使用s s= {},创建的是空字典。
常用操作(关系运算)
python_s = {‘egon’,’alex’,’钢蛋’,’老王’}
linux_s = {‘alex’,’钢蛋’,’欧德博爱’,’艾里科四’}
python_s & linux_s 交集
python_s | linux_s 并集
python_s - linux_s 差集
linux_s - python_s 差集
linux_s ^ python_s 对称差集
python_s.intersection(linux_s) 交集
python_s.union(linux_s) 并集
python_s.difference(linux_s)) 差集#python_s-linux_s
python_s.symmetric_difference(linux_s) 对称差集,python_s ^ linux_s
python_s.difference_update(linux_s) 将linux_s的值更新到python_s的几个集合中
常用函数
.add() 给集合添加元素
.remove() 删除集合中的元素,无元素会报错
.discard() 删除集合中的元素,不报错
.issubset() 判断是否是子集
.issuperset() 判断是否是父集
.isdisjoint() 判断是否有交集,没有交集返回True