字典-其他
infos1={'sid':376,
'sname':'任盈盈',
'age':21,
'hobby':['lol','令狐沖','燙頭發(fā)']
}
infos2=infos1.copy()? ? #復(fù)制字典顷牌,地址不同筑煮,其他相同
print(infos2)
print(id(infos1)is id(infos2)) #is 判斷地址是否相等
print(infos1==infos2)? ? #== 判斷值是否相等
'**************是不是分割線***************'
ls=['A','B','C']
infos=dict.fromkeys(ls,'smd')#創(chuàng)建新的字典具钥,以原列表中的元素作為鍵,并賦值'smd'
print(infos)
'**************是不是分割線***************'
infos1={'sid':376,
'sname':'任盈盈',
'age':21,
'hobby':['lol','令狐沖','燙頭發(fā)']
}
print(infos1.setdefault('age',17))
print(infos1)? #如果鍵在字典中晨仑,返回這個鍵所對應(yīng)的值
print(infos1.setdefault('sex','女'))
print(infos1) #如果鍵不在字典中,將會添加鍵并將值設(shè)為default
'**************是不是分割線***************'
infos1={'sid':376,
'sname':'任盈盈',
}
infos2={'sid':123,
'sname':'任盈盈',
}
infos1.update(infos2) #把字典2中的鍵值對更新到字典1
print(infos1)
字典與列表對比
和list比較翩蘸,dict有以下幾個特點(diǎn):1 查找速度極快币喧,不會隨著key的增加而變慢;
2 需要占用大量的內(nèi)存伤为,內(nèi)存浪費(fèi)多咒循。
而list:1 查找和插入的時間隨著元素的增加而增加据途;2 占用空間小,浪費(fèi)內(nèi)存很少叙甸。
因此,dict是用空間來換取時間的一種方法颖医。
關(guān)于 set
#? Set 是無序的,存儲的值不能重復(fù)
# list是連續(xù)的裆蒸,有順序熔萧,存儲的值可以重復(fù)
mySet=set([1,2,3])
print(mySet)
#二者相同
mySet={1,2,3}
print(mySet)
mySet={1,2,3,111,4,6,1,3}
print(mySet)
'*************割割割割割割***************'
mySet= set()
print(mySet)
'**************割**************************'
mySet={1,2,3}
mySet.add(4)? #新增
print(mySet)
mySet={1,2,3}
mySet.remove(3)
print(mySet)? #刪除一個
'***************割****************'
mySet1={1,2,3}
mySet2={3,4,5}
print(mySet1 | mySet2) #并集
print(mySet1.union(mySet2))
print(mySet1 & mySet2) #交集
print(mySet1.intersection(mySet2))
print(mySet1 - mySet2) #差集
print(mySet1.difference(mySet2))
'***************割****************'
set1={1,2,3}
set1.update('4')? #將集合x并入原集合s中,x還可以是列表,元組,字典等僚祷,x 可以有多個佛致,用逗號分開
print(set1)
set1={1,2,3}
set1.discard(2) #移除
print(set1)
'***************割****************'
set1={1,2,3}
set2=set1.pop()? #隨機(jī)刪除,并返回
print(set1)
print(set2)
'***************割****************'
set1={1,2,3}
print(2 in set1) #判斷是否存在
set1.clear()
print(set1)
'***************割****************'
set1={1,2,3,4,5}
set2={4,5}? ? ? ? ? ? #判斷是否為子集
print(set2.issubset(set1))
print(set1.issuperset(set2))
多維
python的集合可以存放任意類型,可以嵌套很多層次
ls=[1,2,(4,5,6),7,8,[9,0,('a','b','c')]]
print(ls[5][2][1])
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2017-11-1