1.dict.copy()
返回一个新的字典,内容一样,地址不同
#内容一样,地址不同
infos2 = infos1.copy()
==判断值是否相等
is判断地址是否相等
print(infos1 is infos2)
print(ls1 is ls2)
2.dict.fromkeys(seq[, val]))
创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
ls=['a','b','c']
infos = dict.fromkeys(ls,'哈哈')
print(infos)
3.dict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
如果键在字典中,返回这个键所对应的值。如果键不在字典中,向字典中插入这个键,并且以default为这个键的值,并返回 default。default的默认值为None
infos1 = {
'sid':110,
'sname':'老王',
'age':22,
'hobby':['抽烟','喝酒','烫头发']
}
print(infos1.setdefault('sid',120))
print(infos1)
print(infos1.setdefault('sex','男'))
print(infos1)
4.dict.update(dict2)
把字典dict2的键/值对更新到dict里
infos1 = {'sid':1}
infos2 = {'sid':2,'sname':'老王'}
infos2.update(infos1)
print(infos2)
字典与列表对比
和list比较,dict有以下几个特点:
查找速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。
而list:
查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
set
set是一个无序,不能重复的集合容器,所以可以用来过滤重复元素。
list是连续的,有顺序
存储的值是可以重复的
set是无序的
存储的值不能重复
set可以帮助自动去重复
mySet = set()
print(mySet)
ls=[]
把ls转换成set==》set(ls)
pop() 随机删除并返回集合s中某个值
clear() 清空
set1.add(obj) 新增
set1.remove(obj) 移除
| 并集 set1|set2 union( x ) 并集
& 交集 set1&set2 intersection( x ) 交集
- 差集 set1-set2 difference( x )差集
symmetric_difference( x ) 返回s和集合x的对称差集,即只在其中一个集合中出现的元素,不改变集合s, x 也可以是列表,元组,字典。
issubsetssss) 判断 集合s 是否是 集合x 子集
issuperset( x ) 判断 集合x 是否是集合s的子集