字典的复制添加和set

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的子集

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容