1.数据类型补充
1.1 字符串
s=str(123) 类型转换 s=s.capitalize() 首字母大写 s=s.title() 每个特殊字符隔开的单词首字母大写 s=s.swapcase() 大小写转换 print(s.count("1")) 统计"1"出现的次数 print(s.find("1")) 查找索引,没有则返回-1 print(s.index("1")) 查找索引,没有则报错1.2列表
''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' li=list("asdf") 定义方式(迭代) print(li.count("1")) 统计"1"出现的次数 print(li.index("1")) 查找索引 li.sort() 升序 li.sort(reverse=True) 降序 li.reverse 反转1.3 元祖
tu=tuple("12345") 定义方式(迭代) print(tu.count("3")) 统计"3"出现的次数 print(tu.index("3")) 查找索引1.5字典
dic=dict(k=1,k1=123,k2="aa") 定义方式 dic.popitem() Python3.6版本,默认删除最后一个键值对;Python3.5以前,随机删除 dic=dic.fromkeys("asdf",[4,5,6]) 第一个参数是键(迭代),第二个参数是每个键对应的值(同一个内存地址)2.数据类型转换
''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' s=str(int) int => str n=int(str) str => int 字符串必须都是十进制的数 li=list(str) str => list 迭代 li=s.split() str => list print("".join(li)) list => str 可迭代对象中不能包含int tu=tuple(list) list => tuple s=set(list) list => set li=list(tuple) tuple => list s=set(tuple) tuple => set li=list(set) set => list tu=tuple(set) set => tuple #除字典外,容器数据类型之间可以直接相互转换3.常见的坑
3.1 列表
循环添加列表元素时,会形成死循环
li=[1,2,3,4] for i in li: li.append(i) print(li)循环删除索引时,要倒叙删除,或者通过建立新列表,将要删除的元素添加到新列表中,以此删除老列表元素
倒叙删除:
''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' li=[1,2,3,4,5] for i in range(len(li)-1,-1,-1): if i%2 == 1: li.pop(i) print(li)通过新列表删除老列表元素:
li=[1,2,3,4,5] lis=[] for i in range(len(li)): if i%2 == 1: lis.append(li[i]) for c in lis: li.remove(c) print(li)3.2 字典
字典在循环的时候,不能改变字典的大小 => 不能增删
可先定义一个列表,将要删除的键添加到列表中,以此删除字典键值对
''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' dic={"k1":"v1","k2":"v2","k3":"v3"} li=[] for i in dic: if i == "k1" or i == "k3": li.append(i) for c in li: dic.pop(c) print(dic)4. 编码和解码
python2内存使用的是ASCII python3内存使用的是Unicode
print(s.encode("utf-8")) 编码 Unicode => utf-8 print(s.decode("utf-8")) 解码 utf-8 => Unicode #用什么编码就用什么解码 utf-8和gbk不能转换