標籤:list update 清空 基礎 type key col 改變 集合
一、基礎資料類型補充
#資料類型的補充
#元祖tuple,如果裡面還有一個元素且沒有逗號,該資料類型為唯一元素的類型。
# tu = ([1,2,3]) #tu裡面只有一個列表,沒有逗號。資料類型為list.
# print(tu,type(tu))
# tu = ([1,2,3],) #裡面雖然只有一個元素,但是後面有逗號。還是元祖類型。
# print(tu,type(tu))
#for 迴圈中,最好不要迴圈刪除列表或字典中的元素,改變了列表和字典的大小。會出錯。
#解決辦法,列表,反向迴圈,這樣不會改變列表的大小。
# li = [‘liujj‘,‘xiaol‘,‘jisp‘] # for i in range(len(li)-1,-1,-1): #range顧頭不顧腚,所以尾為0-1=-1,len()比索引多1,所以len()-1,當len()作為尾的時候,
# if i % 2 == 1: #如果從0開始迴圈,len()不需要-1。
# li.pop(i)
# print(li)
#解決辦法,字典,先把要刪除的鍵放到一個列表中,再迴圈列表然後刪除字典。
# dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘,‘k3‘:‘v3‘,‘name‘:‘alex‘}
# lis = [] # for i in dic:
# if ‘k‘ in i:
# lis.append(i)
# for m in lis:
# dic.pop(m)
# print(dic)
#tuple-->list list(tu) tuple(list)
#dic -->list list(dic):所有的鍵---> list(dic.keys())
# 所有的值--->list(dic.values())
# 所有的索引值對(列表中是一對一對的元祖)--->list(dic.items())
#set-->list list(set())
#dict.fromkeys(拆分之前的元素,每個元素對應的唯一的值)
# dic = dict.fromkeys(‘abc‘,66)
# print(dic)
#False: 0 , ‘‘ , [] , {} , ()
二、 集合
#集合的增#1.add# set = {‘liujj‘,‘jiasp‘,‘jiaxl‘}# set.add(‘cat‘)# print(set)#2.update 先拆分後添加# set.update(‘abcde‘)# print(set)#集合的刪# 1.remove 按照元素刪除# set.remove(‘jiaxl‘)# print(set)#2.pop 隨機刪除,傳回值為刪除的元素。# print(set.pop())# print(set)#3.del#4.clear 清空列表:set()#集合的查#只有for一種集合的增刪查
三、集合的關係
#集合的交集:& intersection#集合的並集:| union#集合的差集:- difference#集合的反交集:^ symmetric_difference#集合的子集: < 傳回值為真或假。 issubset#集合的超集: > issuperset
交並差反交子集超集
四、深淺copy
# 深淺copy#1.賦值。一個變另一個也跟著變,必須要先賦值,小資料池的話本身就是同一記憶體位址所以不需要再賦值。# li = [1 , 2 , 3]# li2 = li# li.append(99) #set2跟著set1變化# print(li,li2)#2.淺copy。 第一層是獨立的,第二層及以上是同一個記憶體位址,是跟著變化的。# li1 = [1 , 2 , 3 , [‘liujj‘,‘jiasp‘] ]# li2 = li1.copy()# li1[3].append(‘jiaxl‘) #第二層增加,所以li2中的第二層也跟著增加# print(li1,li2)# li1.append(4)# print(li1,li2)#3.深copy,import copy / copy.deepcopy(表名). #不管第幾層都是完全獨立的。# import copy# li2 = copy.deepcopy(li1)# li1.append(77)# print(li1,li2)# li1[3].append(‘xial‘)# print(li1,li2)#4.列表的切片也是屬於----->淺copy.# li2 = li1[:]# li1.append(55)# print(li1,li2)# li1[3].append(‘lang‘)# print(li1,li2)
深淺copy
python 5.7