python教程:数据类型补充,数据类型转换,常见的坑,编码和解码

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不能转换
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章