python(3)---dictionary字典

2021-07-15 10:08

阅读:639

标签:view   def   删除   add   索引   upd   修改   ext   size   

字典和字典操作

1、定义字典

 

1 dic={
2     ‘name‘:‘xiaojun‘,
3     ‘sex‘:‘男‘,
4     ‘height‘:‘185‘,
5     ‘age‘:18,
6     ‘email‘:‘abc@qq.com‘,
7     ‘addr‘:‘火星‘,
8     ‘id‘:1
9 }
  • 使用大括号{}定义,每个值用“,”隔开,key:value形式
  • 字典是无序的,因为它没有下标,用key来当索引,所以是无序的,取值速度快
  • 字典的key必须是唯一的,因为它是通过key来进行索引的,如果重复最后的一个键值对会替换前面的,所以key不能重复,天生就去重

2、字典的增删改查

  2.1 增

 1  #add  两种方式
 2  stus={}
 3  stus[‘name‘]=‘小军‘ #增加
 4  stus[‘name‘]=‘海龙‘ #name修改为“海龙”
 5  stus.setdefault(‘name‘,‘杨帆‘) #如果key已经存在,就不动它;没有的话,添加
 6  stus.setdefault(‘sex‘,‘nan‘)
 7  stus.setdefault(‘addr‘,‘beijing‘)
 8  stus.setdefault(‘email‘,‘13e@aa.com‘)
 9  stus.setdefault(‘phone‘,‘2346465‘)
10  print(stus)

运行结果:

{‘addr‘: ‘beijing‘, ‘sex‘: ‘nan‘, ‘phone‘: ‘2346465‘, ‘name‘: ‘海龙‘, ‘email‘: ‘13e@aa.com‘}

  2.2 改

1 #修改  即再次赋值
2 stus={‘addr‘: ‘beijing‘, ‘sex‘: ‘nan‘, ‘phone‘: ‘2346465‘, ‘name‘: ‘海龙‘, ‘email‘: ‘13e@aa.com‘}
3 stus[‘sex‘]=‘nv‘

2.3 删除

  两种方式:del 和 pop

1 #删  删除不存在的key会报错
2  del stus[‘phone‘]
3  stus.pop(‘age‘)
4  stus.popitem() #随机删除 

 2.4 查询

      两种方式:

  • stus[‘sex‘]   
  • stus.get(‘sex‘)
1 # #查询
2 stus={‘addr‘: ‘beijing‘, ‘sex‘: ‘nan‘, ‘phone‘: ‘2346465‘, ‘name‘: ‘海龙‘, ‘email‘: ‘13e@aa.com‘}
3 print(stus[‘sex‘])  #如果不存在会报错
4 print(stus.get(‘sex‘)) #如果不存在的话,返回none,不会报错
5 print(stus.get(‘sex‘,‘男‘)) #如果sex不存在,返回默认值‘男‘
6 email in stus  #email是否存在stus中,返回true或false

3、字典内置方法

1 stus={‘addr‘: ‘beijing‘, ‘sex‘: ‘nan‘, ‘phone‘: ‘2346465‘, ‘name‘: ‘海龙‘, ‘email‘: ‘13e@aa.com‘}
3 print(stus.keys())   #取出所有key
4 print(stus.values()) #取出所有value
5 stus.update({‘money‘:10000})  #更新字典值,如果key存在的话,就更新,不存在的话就添加

4、遍历字典

1 stus={‘addr‘: ‘beijing‘, ‘sex‘: ‘nan‘, ‘phone‘: ‘2346465‘, ‘name‘: ‘海龙‘, ‘email‘: ‘13e@aa.com‘}
2 for k in stus:
3     print(k,‘===>‘,stus.get(k))
4 
5 for k,v in stus.items():
6     print(k,‘==>‘,v)

运行结果:

技术分享图片技术分享图片
email ===> 13e@aa.com
sex ===> nan
addr ===> beijing
phone ===> 2346465
name ===> 海龙
email ==> 13e@aa.com
sex ==> nan
addr ==> beijing
phone ==> 2346465
name ==> 海龙
View Code

5、字典嵌套

 1 all_stus={
 2     ‘xiaojun‘:
 3     {
 4     ‘name‘:‘xiaojun‘,
 5     ‘sex‘:‘男‘,
 6     ‘height‘:‘185‘,
 7     ‘age‘:18,
 8     ‘email‘:‘abc@qq.com‘,
 9     ‘addr‘:‘火星‘,
10     ‘id‘:1,
11     ‘cars‘:["牧马人",‘911‘,‘野马‘,‘劳斯莱斯‘]
12      },
13     ‘hailong‘:
14     {
15     ‘name‘:‘hailong‘,
16     ‘sex‘:‘男‘,
17     ‘height‘:‘185‘,
18     ‘age‘:12,
19     ‘email‘:‘abc@qq.com‘,
20     ‘addr‘:‘火星‘,
21     ‘id‘:2
22     },
23     ‘yangfan‘:
24         {
25             ‘name‘: ‘hailong‘,
26             ‘sex‘: ‘男‘,
27             ‘height‘: ‘185‘,
28             ‘age‘: 12,
29             ‘email‘: ‘abc@qq.com‘,
30             ‘addr‘: ‘火星‘,
31             ‘id‘: 3,
32             ‘bags‘:{
33                 ‘qianbao‘:[‘lv‘,‘ysl‘],
34                 ‘beibao‘:[‘coach‘,‘abc‘]
35             }
36         }
37 }
38 all_stus[‘xiaojun‘][‘cars‘].append(‘五菱宏光‘)   #给xiaojun添加一个car
39 print(len(all_stus[‘xiaojun‘][‘cars‘]))        #统计xiaojun有多少个car  len()函数
40 all_stus[‘yangfan‘][‘sex‘]=‘nv‘             #改yangfan的sex
41 print(all_stus[‘yangfan‘][‘sex‘])
42 all_stus[‘yangfan‘][‘bags‘][‘qianbao‘].pop(0)    #删除lv
43 all_stus[‘yangfan‘][‘bags‘][‘beibao‘].remove(‘abc‘) #删除abc

 

python(3)---dictionary字典

标签:view   def   删除   add   索引   upd   修改   ext   size   

原文地址:https://www.cnblogs.com/HathawayLee/p/9536879.html


评论


亲,登录后才可以留言!