python中的字典

通过编号来访问各个值时, 列表很有用。
我们这里介绍一种可通过名称来访问各个值的数据结构, 这种数据结构成为字典。
1.字典的值不按顺序排列, 而是存在健下,
2.健可以是数字, 字符串或元祖

创建字典
persons = {'zhansan': 11, 'lisi': 12}
字典的基本操作
  • 存取
dict[k] = v
dict[k]
del dict[k]
  • 是否包含
k in dict
  • 长度
len(dict)
  • 清空
dict.clear()
  • copy
person1 = {'name': 'lisi', 'hobby': ['lanqiu', 'zuqiu', 'paiqiu']}
person2 = person1.copy()
print(person1)  # {'hobby': ['lanqiu', 'zuqiu', 'paiqiu'], 'name': 'lisi'}
print(person2)  # {'hobby': ['lanqiu', 'zuqiu', 'paiqiu'], 'name': 'lisi'}
person2['name'] = 'zhangsan'
person2['hobby'].remove('zuqiu')
print(person1)  # {'hobby': ['lanqiu', 'paiqiu'], 'name': 'lisi'}
print(person2)  # {'hobby': ['lanqiu', 'paiqiu'], 'name': 'zhangsan'}

修改person2的hobby, person1也被改变了, 所以这种拷贝是浅拷贝
为了避免这种问题, 可以使用深拷贝, deepcopy

from copy import deepcopy
person1 = {'name': 'lisi', 'hobby': ['lanqiu', 'zuqiu', 'paiqiu']}
person2 = deepcopy(person1)
print(person1)  # {'hobby': ['lanqiu', 'zuqiu', 'paiqiu'], 'name': 'lisi'}
print(person2)  # {'hobby': ['lanqiu', 'zuqiu', 'paiqiu'], 'name': 'lisi'}
person2['name'] = 'zhangsan'
person2['hobby'].remove('zuqiu')
print(person1)  # {'hobby': ['lanqiu', 'zuqiu', 'paiqiu'], 'name': 'lisi'}
print(person2)  # {'hobby': ['lanqiu', 'paiqiu'], 'name': 'zhangsan'}
  • fromkeys
d = {}.fromkeys(['name', 'age'])
print(d)  # {'age': None, 'name': None}
  • get
    如果访问字典没有的健, 将发生错误, 可以使用get避免报错
d.get('name')  # name不存在, 会返回None
d.get('name', 'lisi')  # 也可以返回指定的值
  • items, keys和values
person = {'name': 'lisi', 'age': 11}
print(person.items())  # [('age', 11), ('name', 'lisi')]
print(person.keys())  # ['age', 'name']
print(person.values())  # [11, 'lisi']
  • pop
person = {'name': 'lisi', 'age': 11}
person.pop('name')
print(person)  # {'age': 11}
dict

序列转字典

person = [('name', 'zhangsan'), ('age', 11)]
d1 = dict(person)  # {'age': 11, 'name': 'zhangsan'}
或
d2 = dict(name='lisi', age=12)  # {'age': 12, 'name': 'lisi'}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 01-字典(dict) 1、字典是容器类型(序列),以键值对作为元素(字典里面存的数据全是以键值对的形式出现的)格...
    d4lx阅读 115评论 0 0
  • 一、字典介绍 想一想:如果有列表nameList = ['xiaoZhang', 'xiaoWang', 'xia...
    辽A丶孙悟空阅读 1,794评论 0 35
  • Python中的字典就是JavaScript中的对象创建字典 访问字典中的值 使用len()方法获取字典中键值对的...
    忽如寄阅读 315评论 0 2
  • 一、字典的介绍   字典利用键值对存储多个数据,并且能够很方便的定位到某个元素。示例: 说明: 字典和列表一样,也...
    嗷老板阅读 565评论 0 1
  • 《匠人精神》为“秋山木工”代表秋山利辉关于如何培养具有日本特色的合格“匠人”的著作。书中秋山利辉通过列举“秋山木工...
    辽A丶孙悟空阅读 683评论 2 15