day3-2

字典的使用

字典是无序的,通过键值索引

字典的简单操作

 1 dicto = {
 2         'name1':'101q',
 3         'name2':'102q',
 4         'name3':'103q',
 5         'name4':'104q',
 6         'name5':'105q'
 7         }
 8 
 9 print(dicto)
10 print(dicto['name3']) # 查找    103q
11 # 如果不确定查找的一定存在,最好使用get方法
12 print(dicto.get("name",'sorry'))   # 如果不存在返回None,可以设定返回值,返回sorry
13 
14 dicto["name2"] = '10022q'
15 print(dicto)         # 修改  {'name1': '101q', 'name2': '10022q', 'name3': '103q', 'name4': '104q', 'name5': '105q'}
16 
17 #  删除
18 # del python内置删除方法,del dicto["name1"]
19 
20 dicto.pop("name1")   # 指定删除name1,popitem  随机删除
21 
22 
23 # 判断字典是否含有
24 print('name2' in dicto)
View Code

多级字典操作

 

1 dicto = {
2         'name1':{'user1':'password1'},
3         'name2':{'user2':'password2'},
4         'name3':{'user3':'password3'},
5         'name4':{'user4':'password4'},
6         'name5':{'user5':'password5'}
7         }
8 
9 print(dicto['name1']['user1'])   #password1
View Code

key值最好不要使用中文

 对key 和value 的操作

 1 dicto = {
 2         'name1':'101q',
 3         'name2':'102q',
 4         'name3':'103q',
 5         'name4':'104q',
 6         'name5':'105q'
 7         }
 8 
 9 print(dicto)
10 print(dicto.values())    # 打印所有的值   dict_values(['101q', '102q', '103q', '104q', '105q'])
11 
12 # dcito.key 打印键值
13 dicto.setdefault("name","qq")
14 print(dicto)#  setdefault  查找是否含有name 的key 如果有则字典不改变,如果没有则添加
View Code

字典的合并

使用update  ,有相同key的则更新,没有则添加

 1 dicto = {
 2         'name1':'101q',
 3         'name2':'102q',
 4         'name3':'103q',
 5         'name4':'104q',
 6         'name5':'105q'
 7         }
 8 
 9 d = {
10      'name1':'小马哥',
11      'name':'大马',
12      1:2
13      }
14 
15 c = {
16      'ab':'cd',
17      'dd':'cc',
18      6:5
19      }
20 
21 print(dicto)
22 
23 dicto.update(d)   # 返回值是None
24 print(dicto)     # {'name1': '小马哥', 'name2': '102q', 'name3': '103q', 'name4': '104q', 'name5': '105q', 'name': '大马', 1: 2}
25 
26 #dicto.update(d,c)    # 出错 TypeError: update expected at most 1 arguments, got 2  
27 #print(dicto)       # 只能有一个参数
28 
29 
30 print(dicto.items())   # 把字典转换成列表
31 
32 for i in dicto.items():
33     print(i)
34     
35 '''  ('name1', '小马哥')
36 ('name2', '102q')
37 ('name3', '103q')
38 ('name4', '104q')
39 ('name5', '105q')
40 ('name', '大马')
41 (1, 2)
42 '''
View Code

fromkeys  通过一个列表生成一个dict

 1 a = dict.fromkeys([1,2,3],'sorry')
 2 print (a)    #  {1: 'sorry', 2: 'sorry', 3: 'sorry'}
 3 
 4 b = dict.fromkeys([4,5,6,],[1,{'qq':''},9])
 5 print (b)   #{4: [1, {'qq': '马'}, 9], 5: [1, {'qq': '马'}, 9], 6: [1, {'qq': '马'}, 9]}
 6   # 全部改变
 7 b[5][1]['qq'] = 'wx'
 8 print(b)   #{4: [1, {'qq': 'wx'}, 9], 5: [1, {'qq': 'wx'}, 9], 6: [1, {'qq': 'wx'}, 9]}
 9 
10 # 类似于浅copy
View Code

循环字典:(两种方法)

for i in dict:

  print(i,dict[i])

 

for k,v in dict.items():

  print(k,v)   # 缺陷,先转换为列表,如果数据量大,耗费太多时间

 

posted @ 2018-09-18 10:30  杨fj  阅读(99)  评论(0)    收藏  举报