组合数据类型
数字 int 方法: int('123')将其他类型的数字转换为数字 int(10,base=2,8,16) 按照指定进制转换 .bit_length() 输出变量至少需要几位比特位
字符串:一旦创建不可修改,一旦修改、拼接就会生成新的字符串
方法: 0. isdigit() 检测字符串是否只由数字组成 1. center(20,'*') 20是宽度(必须填),*是填充符号字符串居中(不必须,只能是一个字符) >>> num = 'wang' >>> n = num.center(20,'0') >>> print(n) 00000000wang00000000 2. capitalize() 首字母大写 3. lower() 首字母小写 4. count() 计算指定字符在字符串中出现了多少次 >>> a = 'qwsaqwsa' >>> n = a.count('a') >>> print(n) 2 5. endswith()/startswith() 判断是否以指定字符结尾/开头,返回bool >>> a = 'alx' >>> a.endswith('a') False >>> a.endswith('x') True >>> a.startswith('a') True 6. find() 从前往后找,返回第一个符合指定字符串的位置 >>> a = 'asdfghjkl' >>> a.find('g') 4 7. format() 格式化,将占位符替换成指定的字符 可以是字典对应(字典前加**),亦可以是数字对应 format_map() 用法相同,但只能传入字典 >>> a = 'i an {name} , old is {age}' >>> n = a.format(name = 'bob',age = '18') >>> print(n) i an bob , old is 18 >>> a = 'i an {0} , old is {1}' >>> n = a.format('bob','18') >>> print(n) i an bob , old is 18 8. isalnum() 判断字符串中是否只包含数字或字母 >>> s = 'asdfghj' >>> s.isalnum() True >>> s = 'qefq2342你好' >>> s.isalnum() True >>> s = 'adv232..' >>> s.isalnum() False 9. expandtabs(6) 先进行分割,六个一组,不足六个的,\t会补上空格,\t之后的重新开始计数 >>> s = '123\tabc\t456\tasd' >>> s.expandtabs(4) '123 abc 456 asd' >>> s.expandtabs(6) '123 abc 456 asd' 10. isprintable # 输出不可显示的字符时会false ,如\t , \n >>> s = 'adv\ndvd\t' >>> s.isprintable() False 11. isspace # 是否全部是空格 >>> s = ' ' >>> s.isspace() True >>> s = 'adsca ' >>> s.isspace() False 12. istitle #是否是标题,即全部首字母大写 >>> s = 'Elmakd iuiuhi Hkbu' >>> s.istitle() False >>> s = 'Elmakd Iuiuhi Hkbu' >>> s.istitle() True 13. join 非常重要 #在字符串每个元素间添加指定字符,' '.join() >>> ' '.join('wanghaiyang') 'w a n g h a i y a n g' 14. lower # 转换小写 >>> s = 'IIUIB' >>> s.lower() 'iiuib' 15. upper # 转换大写 >>> s = 'advaeb' >>> s.upper() 'ADVAEB' 16. lstrip,rstrip,strip #去除空白(开头和结尾的),换行(默认),也可以去除指定字符最多匹配 >>> s = ' sve vre ' >>> s.strip() 'sve vre' 17. maketrans,translate # 连用,前者创建对应关系,后者根据关系替换 18. split 非常重要 # 根据指定字符分割为一个列表,默认以空字符分割 19.replace(old,new,max) - rsplit 从后向前分 >>> s = 'asdfgasdfgasdfg' >>> s.split('d') ['as', 'fgas', 'fgas', 'fg'] - 参数maxsplit,指定分割到第几个指定字符(空字符) 19. replace('a','sss') 将字符串中的'a'替换为'sss' >>> s = 'asdfgasdfgasdfg' >>> s.replace('fg','你好') 'asd你好asd你好asd你好'
列表:list 1. append() #追加 >>> li = [1,2,3,4,5,'a','b'] >>> li.append('v') >>> print(li) [1, 2, 3, 4, 5, 'a', 'b', 'v'] 2. clear() #清空列表 >>> li = [1,2,3,4,'advs','aca',1,32,54] >>> li.clear() >>> ls >>> li [] 3. copy() #浅拷贝 >>> li_cp = li.copy() >>> print(li_cp) [1, 2, 3, 4, 5, 'a', 'b', 'v'] 4. count() #计算元素出现的次数 >>> li = [11,2,3,444,5,5,5,666] >>> li.count(5) 3 5. extend() #扩展,传入可迭代对象 >>> li.extend(['a','b','c']) >>> li [11, 2, 3, 444, 5, 5, 5, 666, 'a', 'b', 'c'] 6. index() #根据元素找索引,可以设置起始位置 >>> li = [11, 2, 3, 444, 5, 5, 5, 666, 'a', 'b', 'c'] >>> li.index('a') 8 7. insert(索引,元素) #向指定索引插入元素 >>> li.insert(2,'你好') >>> li [11, 2, '你好', 3, 444, 5, 5, 5, 666] 8. pop() #将指定索引的元素弹出(删除并获取),默认最后一个 >>> li = [11,2,3,444,5,5,5,666] >>> n = li.pop(3) >>> n 444 >>> li [11, 2, 3, 5, 5, 5, 666] 9. remove() #删除指定元素 >>> li = [11, 2, '你好', 3, 444, 5, 5, 5, 666] >>> li.remove('你好') >>> li [11, 2, 3, 444, 5, 5, 5, 666] 10. reverse() #将列表反转 >>> li = [11, 2, '你好', 3, 444, 5, 5, 5, 666] >>> li.reverse() >>> li [666, 5, 5, 5, 444, 3, '你好', 2, 11] 11.sort() #排序,可选参数reverse = False/True >>> li.sort() >>> li [1, 3, 3, 4, 4, 4, 5, 6, 7, 8] # 默认reverse = False,如果reverse = True ,则从大到小排序 12.del L[0] 删除第一个元素,支持索引和切片 列表中可以嵌套任何类型 L = [1,2,3,'a','afas','你好',[1,2,3,4]]
字典:dict # 无序 ①格式:dic = {'key1':12,'key2':'asc'} #value可以是任意类型,key可以是数字,字符串,bool(与1,0会重复),元组 ②:for循环时默认只有key,只获取键:info.keys,只获取值:info.values,键值同时获取info.itmes 方法: 1.del info['k1'] 2.dict.fromkeys(['k1','k2','k3'],[1,2,3]) 转换为字典,前一个列表中的元素转换成键,后一个参数转换为值, 所有的键都对应相同的值,没有value时,对应None >>> dict.fromkeys(['k1','k2','k3'],[1,2,3]) {'k1': [1, 2, 3], 'k2': [1, 2, 3], 'k3': [1, 2, 3]} 3. get(键,指定键不存在时返回什么) >>> dic = {'k1': [1, 2, 3], 'k2': [1, 2, 3], 'k3': [1, 2, 3]} >>> dic.get('k1') [1, 2, 3] >>> dic.get('k2','abs') [1, 2, 3] >>> dic.get('kdv','dva') 'dva' 4. update() 更新字典,键存在则覆盖,不存在就添加 有两种方式更新 ①:dict.update('k1':12,'k2':13) ②:dict.update(k1=12,k2=13) >>> dic = {'k1': [1, 2, 3], 'k2': [1, 2, 3], 'k3': [1, 2, 3]} >>> dic.update(k1=1) >>> dic {'k1': 1, 'k2': [1, 2, 3], 'k3': [1, 2, 3]} >>> dic.update('k4':5) #错误的写法 SyntaxError: invalid syntax >>> dic.update({'k4':5}) >>> dic {'k1': 1, 'k2': [1, 2, 3], 'k3': [1, 2, 3], 'k4': 5}
元组:tuple l = (1,2,3,4,5) # 元组中的元素不可增、删、改,支持索引和切片,有序 1. count() 2. index()
集合:set 特点: 1.集合中的元素不重复 2.只能存放不可变元素(数字、字符串、元组) 3.无序 4.不可索引 方法: 1. add() #向集合中添加元素 >>> s = {1,2,3,'ss','wo',(1,2,3)} >>> s.add('why') >>> s {1, 2, 3, 'ss', 'wo', (1, 2, 3), 'why'} update() # 更新多个值,可传入集合、列表、元组 2. clear() #清空集合 3. copy() # 复制 >>> s = {1,2,3,'ss','wo',(1,2,3)} >>> v = s.copy() >>> v {1, 2, 3, (1, 2, 3), 'ss', 'wo'} 4. pop() # 随机删除 >>> s = {1,2,3,'ss','wo',(1,2,3)} >>> s.pop() 1 >>> s {2, 3, 'ss', 'wo', (1, 2, 3)} 5. remove() #可以指定要删除的元素,删除不存在元素会报错 >>> s = {1,2,3,'ss','wo',(1,2,3)} >>> s.remove(2) >>> s {1, 3, 'ss', 'wo', (1, 2, 3)} >>> s.remove(7) Traceback (most recent call last): File "<pyshell#12>", line 1, in <module> s.remove(7) KeyError: 7 6. discard() # 删除元素,不存在不报错 >>> s = {1,2,3,'ss','wo',(1,2,3)} >>> s.discard('3') >>> s {1, 2, 3, 'ss', 'wo', (1, 2, 3)} >>> s.discard(9) >>> s {1, 2, 3, 'ss', 'wo', (1, 2, 3)} 7. isdisjoint() # 8. issubset() # 判断一个集合是否包含另一个集合,即另一个集合是否是它的子集 集合关系运算: 1.交集 集合1.intersection(集合2) \ 集合1&集合2 >>> s1 = {1,2,3,4,5} >>> s2 = {1,2,3,4,'a','b'} >>> s3 = s1.intersection(s2) >>> s3 {1, 2, 3, 4} >>> s3 = s1&s2 >>> s3 {1, 2, 3, 4} 2.并集 集合1.union(集合2) \ 集合1|集合2 >>> s1 = {1,2,3,4,5} >>> s2 = {1,2,3,4,'a','b'} >>> s3 = s1.union(s2) >>> s3 {1, 2, 3, 4, 5, 'b', 'a'} >>> s3 = s1 | s2 >>> s3 {1, 2, 3, 4, 5, 'b', 'a'} 3.差集 集合1.difference(集合2) 集合1 - 集合2 >>> s1 = {1,2,3,4,5} >>> s2 = {1,2,3,4,'a','b'} >>> s3 = s1.difference(s2) >>> s3 {5} >>> s3 = s1 - s2 >>> s3 {5} 4.交叉补集 集合1 ^ 集合2