dict属于mapping类型

  1. from collections.abc import Mapping,MutableMapping
  2. from collections.abc import __all__
  3.  
  4. # dict 属于Mapping类型
  5.  
  6. a = {}
  7. print(isinstance(a,MutableMapping))

copy 浅拷贝

  1. a = {
  2. "liming1":{"company":"tencent1"},
  3. "liming2":{"company":"tencent2"},
  4. }
  5.  
  6. # clear
  7. """ D.clear() -> None. Remove all items from D. """
  8. # a.clear()
  9.  
  10. #copy 浅拷贝
  11. """ D.copy() -> a shallow copy of D """
  12. new_dict = a.copy()
  13. new_dict['liming1']['company'] = 'tencent3'
  14.  
  15. print(a)
  16. print(new_dict)
  17.  
  18. ###########
  19. {'liming1': {'company': 'tencent3'}, 'liming2': {'company': 'tencent2'}}
  20. {'liming1': {'company': 'tencent3'}, 'liming2': {'company': 'tencent2'}}

fromkeys

  1. # fromkeys
  2. new_list = ['liming1','liming2']
  3.  
  4. new_dict = dict.fromkeys(new_list,{'company':'tencent'})
  5.  
  6. print(new_dict)

update

  1. # update
  2.  
  3. new_dict.update({'lisa':{"company":"tencent2"}})
  4. new_dict.update({'liming2':{"company":"tencent2"}})
  5. new_dict.update(jenny={'company':'beijing'})
  6. new_dict.update([('jenny',{'company':'shanghai'})])
  7. print(new_dict)

defaultdict

  1. __missing__ 很重要
  1. from collections import defaultdict
  2. import collections
  3. s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
  4.  
  5. d = collections.defaultdict(list)
  6. for k, v in s:
  7. d[k].append(v)
  8.  
  9. print(list(d.items()))
  10.  
  11. s = 'mississippi'
  12. d = defaultdict(int)
  13. for k in s:
  14. d[k] += 1
  15. print(list(d.items()))#set 不可变集合 fronzenset 无序 不重复

set和frozenset 的区别

刚开始也讲了frozenset是不可变的,如果修改是报错的,那到底有什么用处呢
应用场景:一般dict 的key 是不变的,我们就可以用
那我们用代码证明下,set不会报错,frozenset 会报错.

  1. s = {'a','b'}
  2. s.add('c')
  3. print(s)
  4.  
  5. f = frozenset('abcd') # 可以作为dict的key
  6. print(f)
  7.  
  8. # 向set添加数据
  9. another_set = set('fgh')
  10.  
  11. s.update(another_set)
  12. print(s)

difference 的用法

  1. # 先看方法描述吧 ( Return the difference of two or more sets as a new set.)
    # 用例子加深印象。
  1. a=set("abc")
  2. print(a.difference("bcd"))
  3. print(a)

set集合运算(|,&,-)

  1. a=set("abc")
  2. b=set("bcd")
  3. print(a-b) #对a进行去重
  4. print(a | b) #并集
  5. print(a & b) #交集
  6.  
  7. # {'a'}
  8. # {'c', 'a', 'd', 'b'}
  9. # {'c', 'b'}

set和dict的更多相关文章

  1. tuple放入dict中

    tuple放入dict中是否可以正常运行 # 将tuple放入dict中 a = ('AI','Kobe','Yao') b = ('AI',['Kobe','Yao']) dict1 = {'a': ...

  2. redis数据结构存储Dict设计细节(redis的设计与实现笔记)

    说到redis的Dict(字典),虽说算法上跟市面上一般的Dict实现没有什么区别,但是redis的Dict有2个特殊的地方那就是它的rehash(重新散列)和它的字典节点单向链表. 以下是dict用 ...

  3. python list dict 去重的两种方式

    def dedupe(items, key=None): seen = set() for item in items: val = item if key is None else key(item ...

  4. list,tuple,dict,set常用方法

    Python中list,tuple,dict,set常用方法 collections模块提供的其它有用扩展类型 from collections import Counter from collect ...

  5. python dict clear只能删除一层,不能够递归删除。

    void PyDict_Clear(PyObject *op) { dictobject *mp; dictentry *ep, *table; int table_is_malloced; Py_s ...

  6. Python中内置数据类型list,tuple,dict,set的区别和用法

    Python中内置数据类型list,tuple,dict,set的区别和用法 Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, ...

  7. python第一天 - dict

    dict key-value集合. d = { ': 'a', ': 'b', ': 'c' } (一).获取集合长度:len(d) = 3(二).获取值: 方式一:d[key];例:d['1'] = ...

  8. python利用dict模拟switch

    pytho本身并未提供switch语句,但可以通过dict来模拟switch, #方法1 def add(x,y): return x+y def dec(x,y): return x-y def m ...

  9. python-list tuple dict set

    1:删除一个列表末尾的元素 pop方法 >>> a [1, 'Jack', 2, 3, 2] >>> a.pop() >>> a [1, 'Jac ...

  10. python基础之dict、set及字符

    python基础之dict.set及字符串处理 本节内容 字典介绍及内置方法 集合介绍 字符串处理 1.字典介绍及内置方法 字典是python中唯一的映射类型,采用键值对(key-value)的形式存 ...

随机推荐

  1. [solr 管理界面] - 索引数据删除

    删除solr索引数据,使用XML有两种写法: 1) <delete><id>1</id></delete> <commit/> 2) < ...

  2. Luogu [P1958] 上学路线_NOI导刊2009普及(6)

    上学路线_NOI导刊2009普及(6) 题目详见:上学路线_NOI导刊2009普及(6) 这是一道基础的DFS(深搜)题,堪称模板,是新手练习搜索与回溯的好题选. 大致思路:从(1,1)开始搜索,每次 ...

  3. hibernate系列之一

    通过自己不断的学习框架以及相关知识的学习,自己学会总结了学习路上遇到的一些问题以及疑惑,自己现在跟着相关的学习资料又进行了一些总结和实践,希望通过自己走过的学习之路能够帮助小伙伴们解决一些学习上问题或 ...

  4. Linux更改文件权限(二)

    更改文件权限(二)============================== (参考于千锋教育教学笔记) 命令umask [root@aminglinux ~]# umask 0022 [root@ ...

  5. mybatis中实现动态SQL

    动态SQL语句,也就意味着SQL语句不在是一成不变的而是具有多样性. if if的用法还是跟平常差不多的(不过没有else if也没有else) <update id="modify& ...

  6. hashlib模块常用功能

    什么是hash hash是一种算法,该算法接受传入的内容,经过运算得到一串hash值 如果把hash算法比喻为一座工厂 那传给hash算法的内容就是原材料 生成的hash值就是生产出的产品 2.为何要 ...

  7. 绘制圆形 和 椭圆形:边圆形 imageellipse() 、 填充圆形imagefilledellipse()

    <?php //1. 绘制图像资源(创建一个画布) $image = imagecreatetruecolor(500, 300); //2. 先分配一个绿色 $green = imagecol ...

  8. thinkphp 3.2.3 程序执行时序图

  9. 设置虚拟机里的Centos7的IP

    输入ip查询命名 ip addr  也可以输入 ifconfig查看ip,但此命令会出现3个条目,centos的ip地址是ens33条目中的inet值. 发现 ens33 没有 inet 这个属性,那 ...

  10. MySQL和PostgreSQL比较

    1.MySQL相对来说比较年轻,首度出现在1994年.它声称自己是最流行的开源数据库.MySQL就是LAMP(用于Web开发的软件包,包括 Linux.Apache及Perl/PHP/Python)中 ...