基础数据类型补充
str
- s.capitalize() -- 首字母大写
- s.title() -- 每个单词首字母大写
- s.swapcase() -- 大小写转换
- s.center() -- 居中/填充
- s.center(20,'*')
- s.find() -- 通过元素查找索引,查找不到时返回-1
- s.index() -- 通过元素查找索引,查找不到时报错
- s.join() --
- print('_'.join(['1','2','3'])) 拼接,将列表转换成字符串
- str+str
- str*5
- 字符串加,乘都是开辟新空间
list
-
列表定义
- print(list('12345'))
-
列表方法
- lst=[1,2,3,4,5,7,8]
- print(lst.index(4)) -- 通过元素查找索引
- lst.sort() -- 排序,默认升序
- lst.sort(reverse=True) -- 降序
- lst.reverse() -- 反转
- lst[::-1] -- 切片反转不修改原数据
-
列表的加
-
lst=[1,2,3,4] lst=lst+[1,2,3] print(lst)
-
-
列表的乘
-
lst=[1,2,3]*5 print(lst) print(id(lst[0]),id(lst[3]))
-
lst=[1,[]]*5 print(lst) lst[1].append(6) print(lst)
- 面试题:列表乘法时,元素是共用的
-
tuple
-
tu=(1,)
-
元组的加
-
tu=(1,2,3)+(1,2,3) print(tu)
-
-
元组的乘
-
tu=(1,[])*3 print(tu) tu[-1].append(10) print(tu)
-
dict
-
dic={'key':1,'key1':2,'key2':3} print(dic.popitem()) #随机删除 python3.6版删除最后一个键值对
- popitem返回的是被删除的键值对
-
dic={} dic.fromkeys('abc',[]) #批量创建键值对'a':[],'b':[],'c':[] print(dic) #面试题
-
dic={} dic=dic.fromkeys('abc',[]) print(dic) dic['b']=11 dic['a'].append(10) print(dic)
-
fromkeys 第一个参数必须是可迭代对象,会将可迭代对象进行迭代,成为字典的键,第二个参数是值(这个值是共用的)
-
fromkeys 共用的值是可变数据类型就会有坑(有一个键值对进行修改,其他键值对都跟着修改),不可变数据类型就没事
-
基础数据类型总结
可变不可变
- 可变:list、dict、set
- 不可变:int、str、bool、tuple
有序无序
- 有序:list、tuple、str
- 无序:dict、set
取值方式
- 索引
- 键
- 直接
数据类型转换
- 重要
- str -- list
- list -- str
重点
- find
- join
- 列表乘法
- 元组(1,)
- 元组乘法
- list -- str
- str -- list
以后会遇到的坑
列表
-
lst=[1,2,3] for i in lst: lst.append[4] print(lst) #死循环
-
lst=[11,22,33,44] for i in lst: lst.remove(i) print(lst) #列表的自动补位
-
使用for循环清空列表元素内容:
- 从后向前删除
- 创建一个新的容器,循环新的容器删除旧的容器内容
-
lst=[1,[2]] lst[1]=lst print(lst) 结果:[1,[...]] #面试题
字典与集合
- 字典和集合在遍历时(循环)不能修改原来的大小(字典的长度),可以修改值
二次编码
- 字节:存储和传输
- s.encode() -- 编码
- s.decode() -- 解码
- 必会
- python 2 中默认编码ASCII,不支持中文
- python 3 中默认编码Unicode