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不能转换