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