infos1={
'sid':110,
'sname':'老王',
'age':22,
'hobby':['抽煙','喝酒','燙頭發(fā)',]
}
#copy 內(nèi)容一樣,地址不同
infos2=infos1.copy()
print(infos2)
print(id(infos1))
print(id(infos2))
print(infos1==infos2)
'''
== 是判斷值是否相等
ls 是判斷地址是否相同
'''
ls1=[1,2,3]
ls2=[1,2,3]
print(ls1==ls2)
print('******華麗的分割線******')
'''
功能,字典可以用一個可迭代的對象作為值
值value如果不寫默認(rèn)為none
'''
ls=['a','b','c',]
infos=dict.fromkeys(ls,'哈哈')
print(infos)
print('******華麗的分割線******')
infos1={
'sid':110,
'sname':'老王',
'age':22,
'hobby':['抽煙','喝酒','燙頭發(fā)',]
}
'''如果字典里鍵存在,不能修改,并返回原來這個值
如果不存在,新增再字典里,并返回新增的值
'''
infos1.setdefault('sid',120)
print(infos1)
infos1.setdefault('sex','男')
print(infos1)
print('******華麗的分割線******')
infos1={'sid':1}
infos2={'sid':2,'sname':'老王'}
#字典的鍵不能重復(fù),如果重復(fù)后面的會覆蓋前面的
infos2.update(infos1)
print(infos2)
print('******華麗的分割線******')
'''
字典與列表對比
和list對比,dict有以下特點:
1、查找速度快,不會隨著key增加而變慢
2、需要占用大量內(nèi)存,內(nèi)存浪費
3、占用空間大,查詢效率高
而list:
查找和插入元素的時間隨著元素的增加而增加
占用空間小,浪費內(nèi)存
所以dict是一種以空間獲取時間的一種方法
'''
print('******華麗的分割線******')
'''
set集合
list列表是連續(xù)的,存儲的值可以重復(fù)
元組是不可修改的列表
而set和字典一樣,是無序的,不能重復(fù)
set里面放可迭代的東西,例如列表
set也用大括號取值,里面只能放一個值
set一般可以幫助我們自動去重復(fù)
'''
mySet=set([1,2,3,4,5,6,1,2,3,4,])
print(mySet)
mySet=set()? #沒有放值,空白列表
print(mySet)
mySet={}? #不能這樣寫,是字典類型
print(mySet)
print(type(mySet))#字典類型
mySet = set([1,2,3,3,])#定義方式多種,可迭代,字符串也可以
print(mySet)? #自動去重復(fù)
mySet={1,2,3,3,2,}
print(mySet)
print('******華麗的分割線******')
infos1={'a':1,'b':2}
infos2=dict(infos1)
print(infos2)? #無序的
#直接遍歷字典只能得到一個值,不能得到鍵值對的兩個值
#不僅可迭代,還得兩個值,用字典元組都行,列表也行
infos1=[('a',1),('b',2)]? #列表兩個值,得到兩個元組
for m,n in infos1:
print('m=%s,n=%s'%(m,n))
a,b=(1,2)? #得到元組可以給兩個值賦值
print(a)
print(b)
print('******華麗的分割線******')
infos = dict(c=1,d=2) #不加單引號,定義好的
print(infos)
print('******華麗的分割線******')
mySet={1,2,3,4,}
#print(mySet(2))錯誤,無序
for i in mySet:? #不能通過下標(biāo)獲取,無序,只能循環(huán)獲取
print(i)? #只要集合都能循環(huán)
print('******華麗的分割線******')
'''
set的一些常見操作
'''
#新添加
mySet={1,2,3,4,5,6,}
mySet.add(120,)
print(mySet)
print('******華麗的分割線******')
mySet={1,2,3,4,5,6,}
mySet.remove(3,)? #只能移除一個數(shù)
print(mySet)
print('******華麗的分割線******')
#并集|? 交集&? 差集-(左差集,右差集)
mySet1={1,2,3,}
mySet2={2,3,4,5}
print(mySet1 & mySet2)? #? .intersection交集
print((mySet1).intersection(mySet2))
print(mySet1 | mySet2)? #? .union并集
print(mySet1 - mySet2)? #? .difference差集
print('******華麗的分割線******')
mySet1={1,2,3,}? #將集合x并入集合s當(dāng)中,x可以是列表,元組字典等 ,x可以有多個,用逗號隔開
mySet2={2,3,4,5}
mySet1.update(mySet2)
print(mySet1)
print('******華麗的分割線******')
mySet1={1,2,3,4,}
mySet2={1,2,3,}
mySet1.discard(2)? #只能移除一個,和remove類似
print(mySet1)
print('******華麗的分割線******')
mySet1={1,2,3,4,}
ret=mySet1.pop()
print(ret)? #隨機刪除,并返回這個值
print(mySet1)
mySet1={1,2,3,4,}
mySet1.clear()
print(mySet1)? #清空
mySet1={1,2,3,4,} #是否正確
print(1 in mySet1)
print('******華麗的分割線******')
mySet1={1,2,3,4,}
mySet2={1,2,3,}? # 判斷s是否是x的子集
print((mySet2).issubset(mySet1))
print((mySet1).issuperset(mySet2))## 判斷x是否是s的子集