数字 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