python基本数据类型常用方法
python基本数据类型
1.整型
1.1 int
1.2 bit_lenght
# 当前数字的二进制位数,至少用n位表示
r = age.bit_length()
>>> a = 8 >>> a.bit_length() 4
2.字符串
1、capitalize()#第一个字母大写 >>> name = 'my name is zhuo' >>> name.capitalize() 'My name is zhuo' 2、center() >>> print(name.center(50,'-')) -----------------my name is zhuo----------------- 3、format format_map,expandtabs,find,index,count,
a = 'abcabc' print(a.count('a')) #默认在整个字符串中查找'a'出现的次数 #>>>2 print(a.count('a',2,6))#限定第2到第5个位置中查找 #>>>1 print(a.find('bca'))#find()、index() 找子字符串的索引,没有没找到,find返回-1,index会直接报错,一般用find #>>>1 print(a.find('ab',2,6))##限定第2到第5个位置中查找'ab'第一次出现的索引 print(a.index('bca')) #format(将字符串中的占位符替换为指定的值,{}是占位符) b = 'my name is {zhuo} do {you} know' print(b.format(zhuo = 'sen',you = 'he')) #>>>my name is sen do he know
4、isalnum()#判断是否纯数字或者字母,或者都有 >>> 'name123'.isalnum() True >>> 'name..'.isalnum() False 5、isalpha()#判断纯字母 >>> 'name123'.isalpha() False >>> 'name'.isalpha() True 6、isdigit#判断是否整数 >>> 'name123'.isdigit() False >>> '123'.isdigit() True >>> '123.3'.isdigit() False 7、isidentifier()#判断是不是一个合法的标识符 >>> 'name'.isidentifier() True >>> '2name'.isidentifier() False 8、isnumeric()#判断是不是整数 >>> '123'.isnumeric() True >>> '12.3'.isnumeric() False 9、isspace#是否纯空格 >>> ' '.isspace() True >>> ' '.isspace() True >>> 's '.isspace() False 10、istitle#是否title(每个单词首字母大写) >>> 'My Name Is Zhuo'.istitle() True >>> 'my Name Is Zhuo'.istitle() False 11、isprintable()#是否可以打印(字符串都可以打印,tty drive文件不可大打印) 12、isupper()#是否大写 13、print('+'.join(['1','2','3']))#拼接 >>> print('+'.join(['1','2','3','4'])) 1+2+3+4 >>> print('-'.join(['1','2','3','4'])) 1-2-3-4 >>> print('*'.join(['1','2','3','4'])) 1*2*3*4 14、print(name.ljust(50,'*'))#保证有50个字符,少的用*在后面补上 15、print(name.rjust(50,'*'))#保证有50个字符,少的用*在前面补上 16、lower()#转换为小写 17、upper()#转换为大写 18、print('\nzhuo'.lstrip())#去掉左边的空格和回车 19、print('\nzhuo'.rstrip())#去掉右边的空格和回车 20、print('\nzhuo'.strip())#去掉两边的空格和回车 21、replace()#替换 22、rfind('x')#找到最右边的x的角标(index) 23、print('my name is zhuo'.split())#默认带空格的换成列表,有把列表换成字符串的方法吗? >>>['my', 'name', 'is', 'zhuo'] 24、swapcase()#把大写变成小写,小写写成大写 25、title()#变成标题(每个首字母变成大写) >>> 'my name is zhuo'.title() 'My Name Is Zhuo'
26、startswith('a')#判断是否以 a 开头 27、endswith('b')#判断是否以b结尾
28、'name'.split('a')#在a处左右分割,变成两个列表。['n','ame']
3.列表
names = ["zhangsan","lisi","wangwu","zhaoliu","laoqi"] print(names) #print(names[-3:-1])#切片 #print(names[-2:]) 1,append、insert添加元素 names.append('zhoushi')#插入列表到最后 names.insert(0,'11')#插入到指定位置 2,remove、del、pop删除元素 names.remove('22')#删除元素 del names[0]#删除元素 names.pop()#默认删除最后一个元素 names.pop(1)#删除指定位置的元素 3,修改元素 names[0] = "22" #修改元素 print(names.count('lisi'))#计算列表中某个元素的数量 print(names.index('lisi'))#打印'list'的位角标 4,反转列表 reverse (将原列表元素反转,并不是新生成一个反列表) print(names) names.reverse() print("rever",names) 5,copy(浅copy,不独立文件) names = ["zhangsan","lisi",['zhuo','sen'],"wangwu","zhaoliu","laoqi"] names2 = names.copy()#把names复制给names2,两个列表的第一层是独立的,其中的列表元素是共用的内存地址 names[2][0] = ['z']#names和names2都会变化 names[1] = 'LISI'#只有names会变
补充:三种浅copy的方法
import copy person = ['name',['a',100]] p1 = copy.copy(person) p2 = person[:] p3 = list(person)
6,深copy:deepcopy(不要瞎用) import copy names = ["zhangsan","lisi",['zhuo','sen'],"wangwu","zhaoliu","laoqi"] names2 = copy.deepcopy(names)#深copy,两个完全独立的列表 names[1] = 'LISI' names[2][0] = 'z' print(names) print(names2) 3.2切片 >>> a = [1,2,3,4,5,6,7,8,9] >>> a[0:9] [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a[:] [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> a[-8:-1] [2, 3, 4, 5, 6, 7, 8] >>> a[::-1] [9, 8, 7, 6, 5, 4, 3, 2, 1]
4.元组
5.字典
info = { 'stu1101':'zhuo', 'stu1102': 'sen', 'stu1103': 'bin', } info['stu1101'] = '卓'#修改 info['stu1104'] = 'wu'#新增 info.pop('stu1104')#标准删除姿势 del info['stu1101']#换个姿势删除 print(info.get('stu1103'))#查询、获取元素 print('stu1103' in info)#判断info中是否有‘stu1103’ print(info.values())#打印所有的values b = {'ha':'hei',} info.update(b)#把b的字典元素更新到info,有重复的key直接覆盖,没有的话就新增 dict.fromkeys([6,7,8],'test') >>> dict.fromkeys([6,7,8],'test')#创建一个初始化字典 {6: 'test', 7: 'test', 8: 'test'}