python字符串,列表,字符串,元组,集合的一些方法
字符串方法
1 __contains__ #等同in 2 3 name = 'erroy' 4 result = name.__contains__('er') #判断元素是否包含er 5 print(result) 6 7 True #结果
__divmod__ #求网页的分页情况应该划分多少
1 all_item=95 2 result =all_item.__divmod__(10) 3 print(result) 4 5 (9, 5) #结果
capitalize() #首字母大写
1 name ='eric' 2 result=name.capitalize() 3 print(result) 4 5 Eric #结果
center() #居中
1 name='123' 2 result=name.center(20,',') 3 print(result) 4 5 ,,,,,,,,123,,,,,,,,, #结果
count() #判断一个元素出现在字符串里几次
1 name='asdasasfasd' 2 result = name.count('d') 3 print(result) 4 5 2 #结果
encode() #字符编码转换
1 name ='asdasd' 2 result = name.encode('gbk') 3 print(result) 4 5 b'asdasd' #结果
endswith() #判断是不是以什么结尾的
1 name = 'asdasdfe' 2 result = name.endswith('e') 3 print(result) 4 5 True #结果 6 7 result = name.endswith('e',0,3) #判断是不是这个区间结尾的。 8 print(result) 9 10 False #结果
startswith() #判断是不是什么开头
1 name='alex' 2 if name.startswith('a'): 3 print('yes') 4 \yes
expandtabs() #把tab转换成空格
1 name = 'a\tles' 2 result = name.expandtabs(tabsize=30) #可以指定转换成多少空格不常用 3 print(result) 4 5 a les #结果
find() #查找返回元素的索引值
1 name = 'alex' 2 result = name.find('x') 3 print(result) 4 print(name[name.find('name'):]) 5 6 3 #结果 7 x
format() #格式化字符
1 name ='alex{0} as id{1}' 2 result = name.format('sb','eric') 3 print(result) 4 5 alexsb as ideric #结果 6 7 name = 'alex{name}as{id}' 8 result = name.format(name='sb',id='eric') 9 print(result) 10 11 alexsbaseric #结果
index() #查找元素的索引值,不存就报错,返回布尔值
1 name = 'asexdsaex' 2 result = name.index('ex') 3 print(result) 4 5 2 #结果
isalnum() #判断是不是阿拉伯数字或字母,返回布尔值
1 print('abc123'.isalnum()) 2 3 Treu #结果
isalpha() #判断是不是英文字符,返回布尔值
1 print('abA'.isalpha()) 2 3 True #判断结果
isdecimal() #判断是不是10进制数
1 print('11a'.isdecimal()) 2 3 False #结果
isdigit() #判断是不是数字
1 name = '123' 2 print(name.isdigit()) 3 if"123".isdigit(): 4 print('1A'.isdigit()) 5 6 True #结果 7 False
isspace() #判断是不是空格,完全是空格才是真
1 print(' 1'.isspace()) 2 3 False #结果
istitle() #判断是不是标题
1 print('My name s '.istitle()) 2 3 False #结果
isupper() #判断是不是全部是大写
1 print('MY NAME IS'.isupper()) 2 3 True #结果
join() #拼接
1 li = ['s','a','e','x'] 2 result=''.join(li) #双引号之间可以设置想要用什么相隔开 3 print(result) 4 5 saex #结果
lower() #将字母变小写
1 print('AAA'.lower()) 2 3 aaa #结果
upper() #讲字母变大写
1 print('aaa'.upper()) 2 3 AAA #结果
strip() #去掉两边空格,包括换行符和tab
1 print(' alex\n'.strip()) 2 3 alex #结果
maketrans() #起到对应关系的作用
1 intab = 'aeiou' 2 outtab = '12345' 3 trantab = str.maketrans(intab,outtab) 4 print(trantab) 5 p = str.maketrans('abcdef','123456') 6 print(p) 7 print('alex li'.translate(p)) 8 9 10 {97: 49, 101: 50, 105: 51, 111: 52, 117: 53} #结果 11 {97: 49, 98: 50, 99: 51, 100: 52, 101: 53, 102: 54} 12 1l5x li
partition() #分割
1 name = 'alexissb' 2 result = name.partition('is') 3 print(result) 4 5 ('alex', 'is', 'sb') #结果
replace() #替换元素
1 name='alexissb' 2 result=name.replace('a','o',1) 3 print(result) 4 5 olexissb #结果
rfind() #从左往右找,找到最右边的下标
1 name='aaaa' 2 print(name.rfind('a')) 3 4 3 #结果
rindex() #从右开始找元素,没有就报错
1 name='aaaa' 2 print(name.rindex('a')) 3 4 3 #结果
split() #指定分隔符切割
1 t=('1+2+3+4'.split('+')) #会分割成列表 2 print(t,type(t)) 3 4 ['1', '2', '3', '4'] <class 'list'> #结果
splitlines() #根据换行符分割,能帮你识别windows下的换行符和linux下的换行符,会切割成列表
1 print('1+2\n+3+4'.splitlines()) 2 ['1+2', '+3+4'] #结果
swapcase() #大小写转换
1 print('Alex Li'.swapcase()) 2 aLEX lI #结果
list 列表的方法
copy() #拷贝
1 names = ['4ZhangYang','#1Gunyun','xXiangPeng',["alex","jack"],'ChenRonghua'] 2 name2 = names.copy() 3 print(names) 4 print(name2) 5 names[2] = "向鹏" 6 names[3][0] = "alexder" 7 print(names) 8 print(name2) #第二层列表会复制一份内存地址 9 print(names[0:-1:2]) 10 for i in names: 11 print(i) 12 如果列表等于列表,那都引入一个内存地址 13 14 如果想改变下,可以引入深copy 15 import copy 16 names = ['4ZhangYang','#1Gunyun','xXiangPeng',["alex","jack"],'ChenRonghua'] 17 name2 = copy.deepcopy(names) 18 19 在深copy中修改,就属于完全独立出来的copy,会在内存中再次开辟空间 20 21 22 浅copy的作用,可以用来创建联合帐号 23 import copy 24 person = ["name",['saving',100]] 25 p1 = person[:] 26 #p2 = person.copy() #浅copy的三种方法 27 p2 = list(person) 28 print(p1) 29 print(p2) 30 31 p1[1][1]=50 32 print(p1) 33 print(p2)
pop() #默认移除最后一个,会有返回值
1 li=['alex','seven'] 2 lis=li.pop() 3 print(li,lis) 4 ['alex'] seven #结果
clear() #清空列表,只剩None空值
1 li=['alex','seven'] 2 print(li.clear()) 3 None
extend() #扩展列表,更改原列表
1 li=['alex','seven'] 2 li.extend([11,22,33]) 3 print(li) 4 ['alex', 'seven', 11, 22, 33]
remove() #移除指定元素
1 li=['alex','seven'] 2 li.remove('alex') 3 print(li) 4 ['seven']
reverse() #反转
1 li=['alex','seven'] 2 li.reverse() 3 print(li) 4 ['seven', 'alex']
sort() #排序
1 li = [2,6,8,4,9,1] 2 li.sort() 3 print(li) 4 [1, 2, 4, 6, 8, 9]
count() #统计元素出现的次数
1 li = [2,6,8,4,9,1] 2 print(li.count(2)) 3 1
append() #追加元素进列表
1 li = [2,6,8,4,9,1] 2 li.append(2) 3 print(li) 4 [2, 6, 8, 4, 9, 1, 2]
元祖的方法和列表方法大抵相同,除了少了修改的操作,和index()、count()等方法。但元组可以在映射(和集合的成员)中当键使用——而列表不行。元组作为很多内建函数和方法的返回值,所以你必须对元组进行处理,只要不尝试修改,你都能当做列表来修改。
字典
字典的常用操作
len(dic) #返回dic项中(键值对)的数量
dic[k] #返回关联到键K上的值:
dic[k]=v #将值v关联到键为k的项
del d[k] #删除键为k的项:
k in d #检查d中是否有含有键为k的项
clear() #清除字典在内存中的引用
1 x={} 2 y=x 3 x['key']='value' 4 x.clear() 5 print(y) 6 {}
fromakeys() #用来将同一个value赋值给不同的key,这是一个浅copy
1 dic=dict(k1='v1',k2='v2') 2 new_dict=dic.fromkeys(['k1','k2'],'v1') 3 print(new_dict) 4 {'k1': 'v1', 'k2': 'v2'}
用来查找字典元素的最合适的方法
get() #打开字典查找元素,如果没有会返回一个None的空值,也能指定返回的值
1 dic=dict(k1='v1',k2='v2') 2 {'k1': 'v1', 'k2': 'v2'} 3 dic={'k1':'v1','k2':'v2'} 4 print(dic.get('k1')) 5 print(dic.get('k3','alex')) 6 v1 7 alex
keys() #返回所有的key
1 dic=dict(k1='v1',k2='v2') 2 print(dic.keys()) 3 dict_keys(['k1', 'k2'])
values() #返回所有的value
1 dic=dict(k1='v1',k2='v2') 2 print(dic.values()) 3 dict_values(['v1', 'v2'])
items() #返回所有的key和value
1 dic=dict(k1='v1',k2='v2') 2 print(dic.items()) 3 dict_items([('k1', 'v1'), ('k2', 'v2')])
pop() #移除一个元素,有返回值,在这里必须指定元素移除
1 dic=dict(k1='v1',k2='v2') 2 print(dic.pop('k1')) 3 v1
popoitem() #无须的移除元素
#交互模式下的测试
1 dic=dict(k1='v1',k2='v2',k3='v3',k4='v4',k5=5) 2 dic.popitem() 3 ('k3', 'v3') 4 dic.popitem() 5 ('k2', 'v2') 6 dic.popitem() 7 ('k1', 'v1') 8 dic.popitem() 9 ('k5', 5)
update() #用来合并字典,如果key相同,当值有更新的时候,会去更新字典
1 dic=dict(k1='v1',k2='v2') 2 dicb = dict(v1='k1',v2='k2',k1='v3') 3 dic.update(dicb) 4 print(dic) 5 {'k1': 'v3', 'k2': 'v2', 'v1': 'k1', 'v2': 'k2'}
setdefault() #增加元素,如果元素以存在取消操作,再返回字典。如果不存在则更新字典,可更新键和value
1 dic=dict(k1='v1',k2='v2') 2 print(dic.setdefault('k1',{'k1':'v2'})) 3 print(dic.setdefault('k3',{'k3','v3'})) 4 print(dic) 5 print(dic.setdefault('k4','alex')) 6 print(dic) 7 v1 8 {'v3', 'k3'} 9 {'k1': 'v1', 'k2': 'v2', 'k3': {'v3', 'k3'}} 10 alex 11 {'k1': 'v1', 'k2': 'v2', 'k3': {'v3', 'k3'}, 'k4': 'alex'}
set集合 set是一个无须且不重复的元素集合,还可以做关系测试
1 s1 = set() 2 s1.add('alex') 3 s2=set(['alex','eric','tony','alex']) #创建集合,自动转换列表成set类型 4 print(s2) 5 s3 = s2.difference(['alex','eric']) #找到两个集合不同的,然后将不同的元素集合起来创建的集合 6 print(s3) 7 {'tony', 'alex', 'eric'} 8 {'tony'}
discard() #和remove道理差不多区别是需要他指定一个元素移除,更新集合
1 s2=set(['alex','eric','tony']) #创建集合,自动转换列表成set类型 2 print(s2) 3 s2.discard('alex') 4 print(s2) 5 {'eric', 'tony', 'alex'} 6 {'eric', 'tony'}
1 s1=set(['alex','eric','tony']) 2 s2=set([1,2,3,4,5]) 3 print(s1.difference(s2)) 4 {'tony', 'eric', 'alex'}
1 list_1 = [1,4,5,6,3,6,7,9] 2 list_1 = set(list_1) 3 list_2 = set([2,6,0,66,22,8,4]) 4 print(list_1.intersection(list_2)) #取交集 5 {4, 6}
1 s4=s2.difference_update(['alex','eric']) #传入什么元素就删除什么元素,更新本身的元素 2 print(s2) 3 print(s4) 4 set(['tony', 'alex', 'eric']) 5 set(['tony']) 6 None 7 例二: 8 print(list_1 & list_2)
1 print(list_1.union(list_2)) #取并集 2 {0, 1, 2, 3, 4, 5, 6, 7, 66, 9, 8, 22} 3 print(list_2 | list_1)
1 list_1.update([888,777,555]) 2 print(list_1) 3 {1, 3, 4, 5, 6, 7, 9, 777, 555, 888}
1 list_1 = [1,4,5,6,3,7,9] 2 list_1=set(list_1) 3 list_2 = set([2,6,0,66,22,8,4]) 4 print(list_1.isdisjoint(list_2)) 5 False
1 list_1 = [1,4,5,6,3,7,9]
2 list_1=set(list_1) 3 list_3 = set([1,4,7]) 4 print(list_3.issubset(list_1)) 5 True
1 print(list_1.issuperset(list_3)) 2 True
1 print(list_1.symmetric_difference(list_2)) 2 {0, 1, 2, 66, 3, 5, 8, 7, 9, 22} 3 例二: 4 print(list_1 ^ list_2)