1. 程式人生 > >python基礎中的四大天王-增-刪-改-查

python基礎中的四大天王-增-刪-改-查

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基礎中的四大天王-增-刪-改-查