python-数据类型-字典dict

  • 字典:用{}表示,存放键值对数据,即{key:value},键有唯一性,python3.6以后有序

    • 字典的键可为string和int,值可为任意类型
    • 注意:key必须是可hash类型,不能为列表,因为列表是不可hash类型,或者理解为不可变的类型均可作
      为字典的key
  • 操作:增删改查

    • 增:

      • dic["key"] = value 强制添加或修改
      • dic.setdefault(key, value) 增加键值对,若字典中已存在该键,则不做操作
    • 删:

      • dic.pop(key) 删除指定key,返回被删除的value
      • del dic[key]
      • dic.clear() 清空字典
      • dic.popitem() 随机删除,返回一个元组,(key, value)
    • 改:

      • dic[key] = value
      • dic.update(new_dic) 用new_dic更新dic,但不会删除原有的键,只会添加新键和覆盖已有的键值对
      In [36]: dic1 = {1:100, 2:200}
      
      In [37]: dic2 = {2:300, 3:400}
      
      In [39]: dic1
      Out[39]: {1: 100, 2: 200}
      
      In [40]: dic1.update(dic2)
      
      In [41]: dic1
      Out[41]: {1: 100, 2: 300, 3: 400}
      
    • 查:

      • for i in dic for循环默认是获取字典中的键
      • dic.get(key, default) 查询键key,如果该键不存在返回default,该默认值可设定
      • dic.keys() 返回一个由key组成的列表
      • dic.values() 同dic.keys()相同
      • dic.items() 返回一个由键值对(元组)组成的列表
    In [25]: dic = {1:'abc', 2:'def', 3:100, 'a':200, 'b':300}
    
    In [26]: dic
    Out[26]: {1: 'abc', 2: 'def', 3: 100, 'a': 200, 'b': 300}
    
    In [30]: for i in dic:
        ...:     print(i,type(i), ':',dic[i],type(dic[i]))
        ...:     
    1 <class 'int'> : abc <class 'str'>
    2 <class 'int'> : def <class 'str'>
    3 <class 'int'> : 100 <class 'int'>
    a <class 'str'> : 200 <class 'int'>
    b <class 'str'> : 300 <class 'int'>
      
    In [31]: dic.setdefault('dic2', {1:'123', 2:'321'})
    Out[31]: {1: '123', 2: '321'}
    
    In [32]: dic
    Out[32]: {1: 'abc', 2: 'def', 3: 100, 'a': 200, 'b': 300, 'dic2': {1: '123', 2: '321'}}
    
    In [33]: dic.keys()
    Out[33]: dict_keys([1, 2, 3, 'a', 'b', 'dic2'])
    
    In [34]: dic.values()
    Out[34]: dict_values(['abc', 'def', 100, 200, 300, {1: '123', 2: '321'}])
    
    In [35]: dic.get('dic2', 'none')
    Out[35]: {1: '123', 2: '321'}
    
  • 其它操作:dic.fromkeys() 批量创建键值对

    • 第一个参数是一个可迭代对象(比如列表,元祖等等),第二个参数是给每个键赋一个默认值,该参数不写默认赋值为None
In [58]: l = [1, 2, 3, 4, 'a', 'b', 'c']

In [59]: l
Out[59]: [1, 2, 3, 4, 'a', 'b', 'c']
  
In [62]: dic = dict.fromkeys(l)

In [63]: dic
Out[63]: {1: None, 2: None, 3: None, 4: None, 'a': None, 'b': None, 'c': None}

In [60]: dic = dict.fromkeys(l, 100)

In [61]: dic
Out[61]: {1: 100, 2: 100, 3: 100, 4: 100, 'a': 100, 'b': 100, 'c': 100}
  • 字典嵌套:操作同上
发布了36 篇原创文章 · 获赞 2 · 访问量 1699
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览