python基礎中的四大天王-增-刪-改-查
阿新 • • 發佈:2019-04-06
fine tuple define 就是 實例 開放 之前 count dot
列表-list-[]
輸入內存儲存容器 發生改變通常直接變化,讓我們看看下面列子
增---默認在最後添加
#append()--括號中可以是數字,可以是字符串,可以是元祖,可以是集合,可以是字典 #lst=[1,2,3,‘afdsf‘,6] #1print(lst.append(233))#---none--沒有返回值 所以none #2 ‘‘‘lst=lst.append(233) print(lst)‘‘‘#---none---沒有返回值 所以none #lst.append(223)#---int #print(lst)#--true #----另類的+在列表我們指定位置 # lst.insert(2,1)#在列表索引為2 位置添加1,那麽原本lst中索引為2的數據且它後面數據就得依次往後排 # print(lst) # lst.append(‘eva‘)#---str # print(lst) # tu1 = (‘a‘, ‘b‘,3, 666) # lst.append(tu1) # print(lst)#----[1, 2, 3, ‘afdsf‘, 6, (‘a‘, ‘b‘, 3, 666)] # set = (‘a‘, ‘b‘,3, 666) # lst.append(set) # print(lst) # # # dct = {‘a‘:‘b‘,‘c‘:666} # lst.append(dct) # print(lst) #--從底層結構來看,列表變化都是在操作增刪改時 直接放生變化,不會生成返回值 #好比我同時打開下面兩個操作 # set = (‘a‘, ‘b‘,3, 666) #dct = {‘a‘:‘b‘,‘c‘:666} # lst.append(set) # # lst.append(dct) # print(lst) #根據python解釋器 從上至下特點 結果如下 #[1, 2, 3, ‘afdsf‘, 6, (‘a‘, ‘b‘, 3, 666), {‘a‘: ‘b‘, ‘c‘: 666}]
刪---僅pop有返回值---
#刪 pop---()中什麽不寫 默認刪除最後一個 #lst=[1,2,3,‘afdsf‘,6] # ret=lst.pop(1)#只有索引刪,且有返回值,別的沒有返回值 】,也就是說直接在【本身】上打印,或者賦值給某一(變量再打印),都是--none # print(lst,ret) # clear 清空列表 # lst.clear() # print(lst) #del--del lst[列表索引]-----del 和lst 中間什麽符號也不需要--死規定 #按照索引刪除該元素 # del lst[0] # print(lst)#---[2, 3, ‘afdsf‘, 6] #按照切片刪除該元素--顧頭不顧尾 # del lst[0:2] # print(lst)#----[3, ‘afdsf‘, 6] #按照步長刪除該元素- # del lst[::2] # print(lst)#---[2, ‘afdsf‘] #也可以直接刪除列表,但一般不會這麽用 # del lst # print(lst)#---NameError: name ‘lst‘ is not defined
#改
#改 # 按照索引改值 # l = [‘a‘,‘jiazeng‘,‘2‘,‘xiaohei‘] # l[0] = ‘男神‘ #print(l) # [‘男神‘, ‘jiazeng‘, ‘2‘, ‘xiaohei‘] #l[0]=l[0].upper() #print(l)#---[‘A‘,‘jiazeng‘,‘2‘,‘xiaohei‘] # # 按照切片改值(叠代著增加) # l = [‘a‘, ‘jiazeng‘, ‘2‘, ‘xiaohei‘] # tup1=(1,2,‘sa‘,‘sha‘,[1,2,3],{‘a‘:1,‘b‘:2}) # dic={‘a‘:1,‘b‘:2} # l[1:3] = ‘abcdefg‘#---必須是可叠代數據類型str--就是拆散開放入,字典就是把鍵叠代添加,其它就是打開括號---註意 數字 bool是不可叠代數據類型 # print(l) # [‘a‘, ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘, ‘g‘, ‘xiaohei‘] # 按照切片(步長)改值(必須一一對應) # l = [‘a‘, ‘jiazeng‘, ‘2‘, ‘xiaohei‘] # dic={‘a‘:1,‘b‘:2} # lst=[1,2] # l[::2] = ‘帥傻‘#對需要對改的位置一一對應 多一個不行少一個也不行 # print(l) #[‘帥‘, ‘jiazeng‘, ‘傻‘, ‘xiaohei‘]
查
#通過索引查 # l = [‘a‘, ‘jiazeng‘, ‘2‘, ‘xiaohei‘] # print(l[0]) # #通過步長 # print(l[::2]) # #通過切片 # print(l[:3]) # #也可以通過for 循環或者推導式 # print([i for i in l if i.isdigit() ])
列表其它操作
count(數)(方法統計某個元素在列表中出現的次數)。 1 a = ["q","w","q","r","t","y"] 2 print(a.count("q")) sort (方法用於在原位置對列表進行排序)。 reverse (方法將列表中的元素反向存放) 1 a = [2,1,3,4,5] 2 a.sort()# 他沒有返回值,所以只能打印a 3 print(a) 4 a.reverse()#他也沒有返回值,所以只能打印a 5 print(a) 列表也可以相加與整數相乘 l1 = [1, 2, 3] l2 = [4, 5, 6] # print(l1+l2) # [1, 2, 3, 4, 5, 6] print(l1*3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
列表小練習
‘‘‘l1 = [1, 2, ‘bai‘, [1, ‘al‘, 3,]] # 1, 將l1中的‘bai‘變成大寫並放回原處。 # 2,給小列表[1,‘al‘,3,]追加一個元素,‘親親‘。 # 3,將列表中的‘al‘通過字符串拼接的方式在列表中變成‘als‘ l1[2]=l1[2].upper()#用到索引找我們想要的內容時一定要註意 索引到那個是什麽數據類型, # 如果是字符串,你需要先炒作你想改的某樣,再把他賦值或者說覆蓋掉原先索引位置上 print(l1) l1[-1].append(‘親親‘) print(l1) l1[-1][1]=l1[-1][1]+‘s‘ print(l1)‘‘‘
字典--dict---{}
概念
‘‘‘不可變(可哈希)的數據類型:int,str,bool,tuple。 可變(不可哈希)的數據類型:list,dict,set。 字典是Python語言中的映射類型,他是以{}括起來,裏面的內容是以鍵值對的形式儲存的: Key: 不可變(可哈希)的數據類型.並且鍵是唯一的,不重復的。 Value:任意數據(int,str,bool,tuple,list,dict,set),包括後面要學的實例對象等。 在Python3.5版本(包括此版本)之前,字典是無序的。 在Python3.6版本之後,字典會按照初建字典時的順序排列(即第一次插入數據的順序排序)。 當然,字典也有缺點:他的缺點就是內存消耗巨大。‘‘‘
增
# 通過鍵值對直接增加 # ---註意沒有返回值 所以不可以print(dic[‘weight‘] = 75) ‘‘‘dic = {‘name‘: ‘jiazeng‘, ‘age‘: 18} dic[‘weight‘] = 75 # 沒有weight這個鍵,就增加鍵值對 print(dic) # {‘name‘: ‘jiazeng‘, ‘age‘: 18, ‘weight‘: 75} dic[‘name‘] = ‘self_brother‘ # 有name這個鍵,就成了字典的改值 print(dic) ‘‘‘# {‘name‘: ‘self_brothe‘, ‘age‘: 18, ‘weight‘: 75} # setdefault ‘‘‘dic = {‘name‘: ‘jiazeng‘, ‘age‘: 18} dic.setdefault(‘height‘,175) # 沒有height此鍵,則添加---註意格式:‘鍵‘,‘值‘ print(dic) # {‘name‘: jiazeng‘, ‘age‘: 18, ‘height‘: 175} dic.setdefault(‘name‘,‘barry‘) # 有此鍵則-原字典不變--什麽變化沒有 print(dic) # {‘name‘: jiazeng‘, ‘age‘: 18, ‘height‘: 175} #註意setdefault它有返回值 dic = {‘name‘: ‘jiazeng‘, ‘age‘: 18} ret = dic.setdefault(‘name‘) print(ret) # jiazeng print(dic.setdefault(‘name‘))#---# jiazeng‘‘‘
刪
# pop # 通過key刪除字典的鍵值對,有返回值,可設置返回值。----推薦應用程序首選pop dic = {‘name‘: ‘xiaohei‘, ‘age‘: 88} #ret = dic.pop(‘name‘)#-直接輸入健名就可以,返回是值 # ret = dic.pop()---如果()中不寫 還會報錯---字典中pop() 中必須寫鍵 #print(ret,dic) # xiaohei {‘age‘: 18} # ret1 = dic.pop(‘b‘,‘愛你‘)#----當沒有這個鍵時 返回就是愛你,有這個鍵 返回還是所刪除的鍵對應的值 # print(ret1,dic) # 愛你 {‘name‘: ‘xiaohei‘, ‘age‘: 18} #popitem 3.5版本之前,popitem為隨機刪除,3.6之後為刪除最後一個,有返回值 # dic = {‘name‘: ‘xiaohei‘, ‘age‘: 88} # ret = dic.popitem() # print(type(ret),dic) # (‘age‘, 88) {‘name‘: ‘xiaohei‘}----返回的是鍵值對所拼車的元祖形式 #<class ‘tuple‘> {‘name‘: ‘xiaohei‘} # # #clear 清空字典 # dic = {‘name‘: ‘xiaohei‘, ‘age‘: 88} # dic.clear() # print(dic) # {} # # # del # # 通過鍵刪除鍵值對--註意沒有返回值 所以不可print(del dic[‘name‘])<<dic=del dic[‘name‘]--print(dic)>> #dic = {‘name‘: ‘xiaohei‘, ‘age‘: 88} #print(del dic[‘name‘]) # del dic[‘name‘] # print(dic) # {‘age‘: 88} # #刪除整個字典 # del dic
改
#改也可以說增 # 通過鍵值對直接改 # dic = {‘name‘: ‘太白‘, ‘age‘: 18} # dic[‘name‘] = ‘barry‘ # print(dic) # {‘name‘: ‘barry‘, ‘age‘: 18} # update #第一種寫法---鍵=‘值‘ #有相同覆蓋,無則在後添加 # dic = {‘name‘: ‘jiazeng‘, ‘age‘: 18} # #dic.update(sex=‘男‘, height=175) # dic.update(name=‘男‘, age=175)#----{‘name‘: ‘男‘, ‘age‘: 175} # print(dic) # {‘name‘: ‘jiazeng‘, ‘age‘: 18, ‘sex‘: ‘男‘, ‘height‘: 175} #第二種寫法 如果我們想加入多個鍵值對 並且他們是列表中套有個個小元祖--- #他們會在update 打開列表【】和元祖小括號 並將元祖中元素 按照 鍵,值劃分 加入到字典中 #有相同覆蓋 無則從字典後添加 # dic = {‘name‘: ‘jiazeng‘, ‘age‘: 18} # # l1=[(1, ‘購物車‘),(2, ‘登入系統‘),(3, ‘計算機‘),(4, ‘選課系統‘)] # # print(type(l1[0])) # dic.update([(1, ‘購物車‘),(2, ‘登入系統‘),(3, ‘計算機‘),(4, ‘選課系統‘)]) # print(dic) # {‘name‘: ‘jiazeng‘, ‘age‘: 18, 1: ‘購物車‘, 2: ‘登入系統‘, 3: ‘計算機‘, 4: ‘選課系統‘} #第三種 用字典方法去改,有相同鍵覆蓋 無相同鍵添加鍵值對 #被修改的.update(用你需要的) # dic1 = {"name":"jin","age":18,"sex":"male"} # dic2 = {"name":"jiazeng","weight":75} # dic1.update(dic2) # print(dic1) # {‘name‘: ‘jiazeng‘, ‘age‘: 18, ‘sex‘: ‘male‘, ‘weight‘: 75} # print(dic2) # {‘name‘: ‘alex‘, ‘weight‘: 75}
查
#通過鍵查詢 # 直接dic[key](沒有此鍵會報錯) # dic = {‘name‘: ‘xiaohei‘, ‘age‘: 18} # print(dic[‘name‘]) # xiaohei # # # get--強烈推薦查用get 沒有此鍵不會報錯 還可以設置返回值 # dic = {‘name‘: ‘xiaohei‘, ‘age‘: 18} # v = dic.get(‘name‘) # print(v) # ‘xiaohei‘ # #get--設置返回值 # v = dic.get(‘name1‘) # print(v) # None # v = dic.get(‘name2‘,‘沒有此鍵‘) # print(v) # 沒有此鍵 # # #查看字典中所有鍵---keys()--返回一個類似列表容器,並不改變原本數據結構 # dic = {‘name‘: ‘xiaohei‘, ‘age‘: 18} # print(dic.keys()) # dict_keys([‘name‘, ‘age‘]) # #查看字典中所有值---values() # dic = {‘name‘: ‘xiaohei‘, ‘age‘: 18} # print(dic.values()) # dict_values([‘xiaohei‘, 18]) # #查看字典中所有鍵值對---items() # dic = {‘name‘: ‘xiaohei‘, ‘age‘: 18} # print(dic.items()) # dict_items([(‘name‘, ‘xiaohei‘), (‘age‘, 18)])
還有集合 不過集合只有 增---刪兩大天王
集合set {}---我理解為變異是字典 只有鍵 沒有值 #只有增刪兩大天王 # set1 = set({1,2,‘barry‘}) # set2 = {1,2,‘barry‘} # print(set1,set2) # {1, 2, ‘barry‘} {1, 2, ‘barry‘} #增---無序增 #set1 = {‘alex‘,‘wusir‘,‘ritian‘,‘egon‘,‘barry‘} # set1.add(‘景女神‘) # print(set1) #update:叠代著增加--且無序 # set1.update(‘A‘) # print(set1) # set1.update(‘老師‘) # print(set1) # set1.update([1,2,3]) # print(set1) #集合刪 set1 = {‘alex‘,‘wusir‘,‘ritian‘,‘egon‘,‘barry‘} # set1.remove(‘alex‘) # 刪除一個元素 # print(set1) # set1.pop() # 隨機刪除一個元素 # print(set1) # # set1.clear() # 清空集合 # print(set1) # # del set1 # 刪除集合 # print(set1)
元祖更可憐 因為他是號稱不動明王 所以只能查啦
元組tuple---元組:俗稱不可變的列表,又被成為只讀列表--基本數據類型之一 #()括號括起來 #裏面可以放任何數據類型的數據, #查詢可以,循環也可以,切片也可以. #但就是不能改-只剩下查天王,增刪改天王都不是對手 #元組的索引切片 # tu1 = (‘a‘, ‘b‘, ‘xioahei‘, 3, 666) # print(tu1[0]) # ‘a‘ # print(tu1[-1]) # 666 # print(tu1[1:3]) # (‘b‘, ‘xioahei‘) # print(tu1[:-1]) # (‘a‘, ‘b‘, ‘xioahei, 3) # print(tu1[::2]) # (‘a‘, ‘xioahei‘, 666) # print(tu1[::-1]) # (666, 3, ‘xioahei‘, ‘b‘, ‘a‘) #因為元組的特性,直接從屬於元組的元素不能更改,所以元組只能查看。 # 可以利用for循環查詢 #index:通過元素找索引(可切片),找到第一個元素就返回,找不到該元素即報錯 # tu1 = (‘a‘, ‘b‘, ‘xioahei‘, 3, 666) # print(tu1.index(‘xioahei‘))#----2 實現某set一功能 是 · 操作
python基礎中的四大天王-增-刪-改-查