字典
一、什么是字典
Python中的字典是另一种可变容器  
 
可以存储任意类型的数据
 
列表:将多个数据存储在一个有序的容器中,并且通过下标/索引形式来访问
字典:将多个数据存储在一个“无序”的容器中(Python3.5是无序的,在Python3.6中有序),并且通过“名字”来访问。
1 2 3 4 5 6 7 8 9 10 11
   | 
  s1 = [79,80,92] s2 = ['语文','数学','英语']   
  print(s2[0],s1[0])
 
  scores = {'语文':79, '数学':80, '英语':92}
  print(scores['语文'])
 
  | 
 
- 存储一个人的信息  姓名:Mr_lee 年龄:18  性别:True 
- 列表:
 info = ['Mr_lee',18,True]    info[0] 
- 字典:
info = {'name':'Mr_lee', 'age':18, 'gender':True}  info['name'] 
 
二、字典的创建
1 2 3 4
   | d1 = {}   print(type(d1))    d2 = {'A': 1,  'C': 3, 'B': 2,}   print(d2)
  | 
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
   |  d = dict()  
  d = dict({'A': 1,  'C': 3, 'B': 2,} )  
 
  d = dict([1,2,3])  
  d = dict([('A',1),('B',2)])            d = dict(['A1','B2'])   print(d)   
 
  d = dict(a=1,b=2,c=3) print(d)  
 
 
  | 
 
三、字典的访问
- 列表是通过下标索引的方式来访问它的元素的,而字典则是通过键名来获取对应的值
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
   | info = {'id':1, 'name':'Mr_lee', 'age':18, 'age':20}  
  print(info['name']) print(info['Name'])   
 
 
  n = info.get('Name')   print(n)  
  n = info.get('NAME','Tom')   print(n)  
  n = info.get('name','Tom') print(n)  
  | 
 
注意:字典中的键一般都是字符串 ,键必须是不可变类型
1 2 3 4
   | d = {1:1,2:2,3:3}    d = {'A': 1,  'C': 3, 'B': 2,}  d = {(1,):1,(2,):2}   d =  {[1,]:1,[2,]:2} 
  | 
 
四、修改和添加元素
1 2 3 4 5 6 7
   | info = {'id':1, 'name':'Mr_lee', 'age':18}
  id = info.get('id')   print(id)
  id = info['id']    print(id)
  | 
 
1 2 3 4
   | 
  info['id'] = 100   print(info)  
 
  | 
 
1 2 3
   |  info['gender'] =  True   print(info)
 
  | 
 
五、字典常用的方法
| 函数 | 
描述 | 
| d.clear() | 
清空字典中的所有的元素 | 
| d.pop(key) | 
删除指定键对应的值(kv一起被删除) | 
| d.popitem() | 
随机移除并返回被移除的键值对 类型是一个元组(k,v) | 
| d.get(key,default) | 
返回指定键对应的值,当键不存在时,返回为空,如果给了default则当键不存在时,返回default的值 | 
| d.items() | 
以列表的形式返回所有的键值对,列表中的每一个元素都是一个元组包含一个键和值 dict_items([('id', 1), ('name', 'Mr_lee'), ('age', 18)]) | 
| d.keys() | 
返回所有的键 | 
| d.values() | 
返回所有的值 | 
| d1.update(d2) | 
用一个字典/可迭代对象来更新另一个字典 | 
| d.copy() | 
拷贝一个字典 | 
1 2 3 4 5 6 7 8 9
   | info.clear()   print(info)
  v = info.pop('name')  print(v) print(info)  
  item = info.popitem()   print(item)
   | 
 
1 2 3 4 5 6 7 8 9 10 11 12 13
   | info = {'id':1, 'name':'Mr_lee', 'age':18, 'age':20} print(info)
 
 
  n = info.get('Name')   print(n)  
  n = info.get('NAME','Tom')   print(n)  
  n = info.get('name','Tom') print(n)  
  | 
 
1 2 3 4 5 6
   | items = info.items() print(items)          print(list(items))   
  for k,v in list(items):     print(k,v)
   | 
 
1 2 3 4 5 6
   | print(info.keys())
  for key in info.keys():     print(key)
  print(info.values())
   | 
 
1 2 3 4 5 6 7
   | info = {'id': 1, 'name': 'Mr_lee', 'age': 18}
  d = {'height': 180, 'weight': 180}
  info.update(d)   info.update(['A1', 'B2']) print(info)
  | 
 
1 2 3 4 5 6 7 8 9 10 11 12
   |  info = {'id': 1, 'name': 'Mr_lee', 'age': 18} info = {'id': 1, 'name': 'Mr_lee', 'age': 18} for k in info:                print(k,info.get(k)) 
  for k in info.keys():     print(k)
  for k,v in info.items():       print(k,v)     
 
  |