python 字典

2020-01-17 11:31:13 浏览数 (1)

一、什么是字典

  字典是一种可变容器模型,且可存储任意类型对象。字典的每个键值对(key->value)用冒号“:”分割,每个键值对之间用逗号“,”分割,整个字典包括在花括号“{}”中

  注意:键必须使用不可变类型即整形、字符串、元组

二、字典的基本操作

1.增加

代码语言:javascript复制
1 dic = {'name':'tom'}
2 dic['age'] = 18
3 print(dic)

>>> {'name': 'tom', 'age': 18}

2.修改

代码语言:javascript复制
1 dic = {'name':'tom'}
2 dic['name'] = 18
3 print(dic)

>>> {'name': 18}

3.  .setdefault() 操作

代码语言:javascript复制
1 dic = {'name':'tom'}
2 dic['age'] = 18
3 print(dic)
4 
5 # 键存在则不进行操作,并把原有的值作为返回值;键不存在,则增加
6 dic.setdefault('age', '34')  
7 
8 print(dic)

>>> {'name': 'tom', 'age': 18}

       {'name': 'tom', 'age': 18}

4.输出字典的键

代码语言:javascript复制
1 dic = {'name':'tom', 'age':'22', 'hobby':'ss'}
2 print(dic.keys())   #输出字典的键
3 print(list(dic.keys()))   #以列表的形式输出字典的键
4 print(list(dic.values())) #以列表形式输出字典键所对应的值

输出:dict_keys(['name', 'age', 'hobby'])

          ['name', 'age', 'hobby']

          ['tom', '22', 'ss']

5.字典的更新( .update() )

代码语言:javascript复制
1 dic1 = {'name':'tom', 'age':'22', 'hobby':'ss'}
2 dic2 = {'name':'tom', 'age':'12', 'hobby':'小可爱'}
3 print(dic1)
4 dic1.update(dic2)  #把dic2的内容更新到dic1中
5 print(dic1)

输出: {'name': 'tom', 'age': '22', 'hobby': 'ss'}

            {'name': 'tom', 'age': '12', 'hobby': '小可爱'}

6.删除键值对

代码语言:javascript复制
 1 dic1 = {'name':'tom', 'age':'12', 'hobby':'小可爱'}
 2 dic2 = {'name':'tom', 'age':'12', 'hobby':'小可爱'}
 3 del dic1['name']    #删除指定键值对
 4 print(dic1)
 5 
 6 ret = dic1.pop('age')    #删除指定键值对,并返回键值所对应的值
 7 print(ret)
 8 print(dic1)
 9 
10 a = dic2.popitem()    #随机删除某个键值对,并以元组方式返回
11 print(a,dic2)

输出: {'age': '12', 'hobby': '小可爱'}

      12

      {'hobby': '小可爱'}

      ('hobby', '小可爱') {'name': 'tom', 'age': '12'}

7.清空和删除整个字典

代码语言:javascript复制
1 dic = {'name':'tom', 'age':'12', 'hobby':'小可爱'}
2 dic.clear()   #清空字典
3 print(dic)
4 
5 del dic   # 删除整个字典

输出结果: {}

8.字典的嵌套

代码语言:javascript复制
 1 dic_nate = {
 2     "欧美":{
 3         "www.123.com":["质量一般","免费"],
 4         "www.234.com":["质量一般","高清"],
 5         "www.345.com":["质量优","收费,屌丝绕路"]
 6     },
 7     "日韩":{
 8         "www.456.com":["质量优","免费"]
 9     },
10     "大陆":{
11         "www.567.com":["质量差","网速慢"]
12     }
13 }
14 
15 dic_nate['欧美']["www.234.com"][1] = '垃圾'  # 修改键值
16 print(dic_nate)

输出结果:

  {'欧美': { 'www.123.com': ['质量一般', '免费'],

        'www.234.com': ['质量一般', '垃圾'],

        'www.345.com': ['质量优', '收费,屌丝绕路']},

  '日韩': {'www.456.com': ['质量优', '免费']},

  '大陆': {'www.567.com': ['质量差', '网速慢']}}

9.字典的遍历

代码语言:javascript复制
1 dic = {'name':'tom', 'age':'12', 'hobby':'小可爱'}
2 
3 for n in dic:
4     print(n) #输出键
5     print(n, dic[n]) #输出键和键值

输出:name

     name tom

     age 

     age 12

     hobby

     hobby 小可爱

代码语言:javascript复制
1 dic = {'name':'tom', 'age':'12', 'hobby':'小可爱'}
2 
3 for n,m in dic.items():  #用两个变量分别接收键和键值
4     print(n, m)

输出结果:name tom

     age 12

       hobby 小可爱

代码语言:javascript复制
1 a = eval(a)    #转换成字典类型
代码语言:javascript复制

0 人点赞