python基础 6 字典

213 阅读3分钟

一 字典的简要描述和特点

 字典:(dict) 
 生活中的字典:通过目录查找内容 
 编程中的字典:通过键查找值 
 字典是一种映射,hash(哈希) 
 语法: 
 key:键 
 value:值
 key-value:键值对 (项,k-v,entry) 
 字典:是python中唯一的映射类型 
 字典的特点: 
     1. 不支持下标操作 
     2. 字典是无序的 
     3. 字典的键是唯一的 
     phone_ch=['华为','小米','联想','天宇'] 
     phone_en=['Huawei','MI','lenovo','Tianyu'] 
     # 打印中文的手机名和对应的英文名
    print(phone_ch[1],phone_en[phone_ch.index(phone_ch[1])]) 
    phones={'华为':'Huawei','小米':'MI','联想':'lenovo','天宇':'Tianyu'} 
    print(phones['小米']) 
    

二 字典的创建

结构: 变量名={键1:值1,键2:值2,...} 
1. dict(): 返回空字典 空字典:{} 
2. dict(mapping): mapping:
    可以替代映射关系即可 
    {1:'one',2:'two',3:'three'} 
    利用映射关系创建字典 
3. dict(iterable): 
    iterable:表示出映射关系,底层利用的遍历和序列赋值,for循环的参数有两个(元组) 
    [(1,'one'),(2,'two'),(3,'three')] 
4. dict(**kwargs): 
    只能用关键字参数传值 
    关键字参数会被打包成字典输出 
    注意:数字不能作为关键字,所以字典如果想要使用数字所谓键,不能使用该构造方法
5. 手工创建: 
    空字典:{} 
    一般字典:{1: 'one', 2: 'two', 3: 'three'} 
6. 利用方法创建: 
    fromkeys(iterable, value=None) 
    是字典中的一个方法 
    {}.fromkeys() 
    iterable中的元素作为每一个键 
    value值得整体作为键的值(每一个键的值都相等)

三 字典的访问

  1. 查看一个键值对 字典名[键]--->对应的值 (最常用) 
  2. 查看所有键: 
      1. keys() 返回一个类(类似)集合对象 对象中的每一个元素都是字典的每一个键 
      2. 直接遍历 字典中只有键,遍历时只能遍历出键 
  3. 查看所有的值: values(): 返回字典所有的值,被打包成一个类集合对象 
  4. 查看所有的键值对: items(): 返回一个类集合对象,每一个元素都是一个键值对(元组形式) 
  5. get(k[,d]): k:key d:default 如果字典中有对应项,则返回k对应的值 如果字典中没有对应的项,则返回None 
  6. 如果直接访问不存在的键,则会报错:KeyError 
  
  

四 字典的修改

1. 手工修改: 通过键直接对值进行修改 字典名[键名]=新值 
2. 手工添加: 字典名[新键名]=值 
3. clear(): 清空字典 
4. pop(k,[d]): 
    从字典中删除k对应的键值对,并返回对应的值 
    如果键不存在则返回d,如果d没给出则报错 
5. popitem(): 删除并返回某个键值对,如果字典为空,则抛出异常 
6. setdefault(k[,d]): 
    d:默认值,作为字典中的值 
    如果键在字典中,则返回字典对应的值  
    如果键不再字典中,则给字典添加一个键值对,键为k,值为d,并返回d 
    d默认为None 
7. update([E, ]**F): 
    如果E为字典,则将E中的键值对更新到现在的字典中 
    如果E为可迭代对象,则可迭代对象中必须体现映射关系,并将映射关系更新到字典中 
    如果E未给出,可以使用F传值,F只接受关键字参数,则F将关键字参数打包成字典并将键值对更新到字典中 

五 字典的方法

1. copy(): 浅拷贝