infos1={
'sid':110,
'sname':'老王',
'age':22,
'hobby':['抽烟','喝酒','烫头发',]
}
#copy 内容一样,地址不同
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如果不写默认为none
'''
ls=['a','b','c',]
infos=dict.fromkeys(ls,'哈哈')
print(infos)
print('******华丽的分割线******')
infos1={
'sid':110,
'sname':'老王',
'age':22,
'hobby':['抽烟','喝酒','烫头发',]
}
'''如果字典里键存在,不能修改,并返回原来这个值
如果不存在,新增再字典里,并返回新增的值
'''
infos1.setdefault('sid',120)
print(infos1)
infos1.setdefault('sex','男')
print(infos1)
print('******华丽的分割线******')
infos1={'sid':1}
infos2={'sid':2,'sname':'老王'}
#字典的键不能重复,如果重复后面的会覆盖前面的
infos2.update(infos1)
print(infos2)
print('******华丽的分割线******')
'''
字典与列表对比
和list对比,dict有以下特点:
1、查找速度快,不会随着key增加而变慢
2、需要占用大量内存,内存浪费
3、占用空间大,查询效率高
而list:
查找和插入元素的时间随着元素的增加而增加
占用空间小,浪费内存
所以dict是一种以空间获取时间的一种方法
'''
print('******华丽的分割线******')
'''
set集合
list列表是连续的,存储的值可以重复
元组是不可修改的列表
而set和字典一样,是无序的,不能重复
set里面放可迭代的东西,例如列表
set也用大括号取值,里面只能放一个值
set一般可以帮助我们自动去重复
'''
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) #自动去重复
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: #不能通过下标获取,无序,只能循环获取
print(i) #只要集合都能循环
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,) #只能移除一个数
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当中,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的子集