一、列表和集合 二、字典 1 #Author:CGQ 2 #key-value 3 #版本3.6以後dica字典是有序的 4 info={ 5 '123456':"Ren Gong", 6 '123457':"Luan Gong", 7 '123458':"Xiao Gong", 8 } 9 inf ...
一、列表和集合
1 #Author:CGQ 2 import copy 3 #列表 4 ''' 5 names=["ZhangYang","XiaoHei","XiaoHei","LiSan"] 6 print(names[0])#某一個 7 #切片 8 print(names[1:3]) 9 print(names[0:-1:2])#2代表步長 10 print(names[-1]) 11 print(names[-2:]) 12 13 print(names[names.index("ZhangYang")])#輸出原文和位置信息 14 names.append("DaKaiZi")#追加最後 15 names.insert(1,"GuYun")#追加到某位置 16 names.extend("GuYun")#迭代添加 17 names[2] = "XieDi"#替換 18 names[:2] = "ni" 19 names[:2] = "ni43243"#迭代替換 20 names[:2] = [4,3,2,4,3]#迭代替換 21 #刪除 22 names.remove("XieDi")#按元素刪 23 del names[2]#按序號刪 24 del names#刪除names 25 names.pop(2)#按序號刪 26 n1 = names.pop(2)#刪除並返回刪除值(預設刪除最後一個) 27 names.clear()#清空 28 names.reverse()#反轉 29 names.sort()#排序(字母順序,符號》數字》大寫》小寫) 30 names.sort(reverse=True)#反向排序(字母順序,符號》數字》大寫》小寫) 31 names2=[1,2,3,4] 32 names.extend(names2)#鏈接 33 del names2#刪變數 34 ''' 35 ''' 36 names=["ZhangYang","XiaoHei",["CGQ","DaWang"],"XiaoHei","LiSan"] 37 #複製第一層 38 #names2=names.copy() 39 #names2=names[:] 40 #names2=list(names) 41 #names2=names#指針指向name2,沒有新建(針對列表,字元、字元串是新建【真正的複製】) 42 names2=copy.deepcopy(names)#完全複製 43 names[2][0]="cgq" 44 #print(names,names2) 45 for i in names: 46 print(i) 47 ''' 48 #元組 49 # name=("LiSi","WangWu")#不能修改 50 # print(name.index("LiSi")) 51 52 NAME = (1,2,[1,'SDFAS'],'jgjhgj')#其中列表可以修改 53 # NAME[2][1] = NAME[2][1].lower() 54 # print(NAME) 55 56 # s = 'safsadf' 57 # s1 = '_'.join(s)#用'_'相連接,返回字元串 58 # print(s1) 59 #range [......1,2,3........] 60 # for i in range(-20,20,2): 61 # print(i)
二、字典
1 #Author:CGQ 2 #key-value 3 #版本3.6以後dica字典是有序的 4 info={ 5 '123456':"Ren Gong", 6 '123457':"Luan Gong", 7 '123458':"Xiao Gong", 8 } 9 info_a={ 10 '123456':"Ren", 11 '1':"Luan", 12 '12':"Gong", 13 } 14 #b=dict.fromkeys([6,7,8],"test")#創建一個新的字典,但其中的3個test其實是一個(同一地址) 15 #info.update(info_a)#更新info,沒有的添加,有的修改 16 #print(info.items())#把字典轉換成列表 17 #迴圈 18 for i in info.values():#列印value 19 print(i) 20 for i in info:#高效(與for i in inf.keys()一樣) 21 print(i,info[i]) 22 for k,v in info.items():#轉換成列表後迴圈 23 print(k,v) 24 ''' 25 print(info) 26 #print(info['123456'])#提取索引為123456的數據 27 #修改或添加 28 info['123456']="人工"#增加(字典中無該key) 29 info.setdefault('12345610','afasd')#增加(如果有該key,不做任何操作) 30 info['123459']="大河"#修改(字典中有該key) 31 #del info['123456']#刪除該條數據 32 #info.pop("123456")#刪除該條數據,有返回值 33 print(info.pop('1234561321','沒有此數據'))#如沒有該key,則返回'沒有此數據' 34 #info.popitem()#隨機刪一條數據,返回刪除數據(元組) 35 #info.clear()#清空字典 36 print(info.get('12345'))#安全的查找方法,查不到輸出None 37 print(info.get('12345','沒有'))#安全的查找方法,查不到輸出 沒有 38 print(info) 39 print('12345' in info)#找到輸出true,找不到輸出false 40 #info.has_key("1103")2.x版本的寫法^上 41 ''' 42 '''''' 43 #del info#刪除變數 44 av_catalog = { 45 "歐美":{ 46 "www.youporn.com": ["很多免費的,世界最大的","質量一般"], 47 "www.pornhub.com": ["很多免費的,也很大","質量比yourporn高點"], 48 "letmedothistoyou.com": ["多是自拍,高質量圖片很多","資源不多,更新慢"], 49 "x-art.com":["質量很高,真的很高","全部收費,屌比請繞過"] 50 }, 51 "日韓":{ 52 "tokyo-hot":["質量怎樣不清楚,個人已經不喜歡日韓範了","聽說是收費的"] 53 }, 54 "大陸":{ 55 "1024":["全部免費,真好,好人一生平安","伺服器在國外,慢"] 56 } 57 } 58 av_catalog["大陸"]["1024"][1]="可以在國內做鏡像" 59 print(av_catalog.values())#列印除values所有的值 60 print(av_catalog.keys())#列印所有的keys值 61 print(av_catalog.items())#列印所有的keys,values值 62 av_catalog.setdefault("臺灣",{"www":["watifak",2]}) 63 print(av_catalog) 64 65 66 # = 賦值 == 比較值是否相等 is 比較,比較的是記憶體地址 id(記憶體地址的內容) 67 li1 = [1,2,3] 68 li2 = li1 69 li3 = li2 70 print(id(li1),id(li2))#指向同一個記憶體地址 71 72 #數字,字元串 小數據池 73 #數字的範圍 -5 -- 256 74 #字元串:1,不能有特殊字元 75 # 2,s(一個字元)*20 還是同一個地址,s*21以後都是兩個地址 76 # i1 = 6 77 # i2 = 6 78 # print(id(i1),id(i2))#指向同一個記憶體地址 79 # i1 = 300 80 # i2 = 300 81 # print(id(i1),id(i2))#指向同一個記憶體地址 82 83 #剩下的 list dict tuple set 84 # l1 = [1,] 85 # l2 = [1,] 86 # print(l1 is l2)#指向非同一個記憶體地址 87 88 89 # s = 'alex' 90 # s1 = b'alex' 91 # print(s,type(s)) 92 # print(s1,type(s1)) 93 94 # s = '中國' 95 # print(s,type(s)) 96 # s1 = b'中國' 97 # print(s1,type(s1)) 98 99 s1 = 'alex' 100 # encode 編碼,如何將str --> bytes, () 101 s11 = s1.encode('utf-8') 102 s11 = s1.encode('gbk') 103 print(s11) 104 s2 = '中國' 105 s22 = s2.encode('utf-8') 106 s22 = s2.encode('gbk') 107 print(s22)View Code
三、集合
#Author:CGQ ''' 集合:可變的數據類型,他裡面的元素必須是不可變的數據類型,無序,不重覆。 {} ''' # set1 = set({1,2,3}) # set1 = {'alex','wusir','ritian','egon','barry',} # set2 = {1,2,3,[2,3],{'name':'alex'}} # 錯的 lieXi_1=[3,2,2,9] lieXi_2=set([0,36,3,99]) lieXi_1=set(lieXi_1) print(lieXi_1,type(lieXi_1)) #交集 print(lieXi_1 & lieXi_2) print(lieXi_1.intersection(lieXi_2)) #並集 print(lieXi_1 | lieXi_2) print(lieXi_1.union(lieXi_2)) #lieXi_1-lieXi_2(差) print(lieXi_1 - lieXi_2) print(lieXi_1.difference(lieXi_2)) #子集(是否包含) print(lieXi_1.issubset(lieXi_2)) #是否被包含 print(lieXi_1.issuperset(lieXi_2)) #對稱差集(並集-交集) print(lieXi_1 ^ lieXi_2) print(lieXi_1.symmetric_difference(lieXi_2)) lieXi_1.add(98)#添加 lieXi_1.update([111,416])#添加多個 lieXi_1.remove(98)#刪除 print(len(lieXi_1))#長度 print(98 in lieXi_1)#測試98是否是lieXi_1的成員 #print(lieXi_1.pop())#隨機刪除並返回刪除值 print(lieXi_1.discard('KJ'))#刪除指定值,沒有返回None(不報錯),成功無提示 #{} set() # set1.clear() # print(set1) # set() # del set1#直接刪除變數 # print(set1)#已刪除此集合 #查 # for i in set1:View Code
#將集合(set)類型轉換為frozenset類型;由不可變類型轉化為可變類型
s1 = {1, 2, 3}
print(s1,type(s1))
s = frozenset(s1)
print(s,type(s))