python 字典dict

一、字典(dict)

   1.字典

    字典:用 {} 来表示, 键值对数据 {key:value}, 具有唯一性。

    键:都必须是可哈希的,不可变的数据类型就可以当做字典中的键值,没有任何限制。

  2.字典的增删改查

    1增加

     dic[键名] = value               新增,强制添加

     dic.setdefault(key,value)   如果字典中存在就不进行操作,不存在就进行添加。

 

1 dic = {"k1":"v1","k2":"v2","k3":"v3"}
2 dic["k4"] = "v4"
3 dic.setdefault("k5","v5")

 

    2.删除

     dic.pop(key)      通过key删除,返回值是被删除的值

     del  dic[key]       通过key删除

       clear()      清空字典

     popitem()      随机删除 (python3.6中是删除最后一个,python3.5是随机删除)

 

1 dic = {"k1":"v1","k2":"v2","k3":"v3"}
2 dic.pop("k1")
3 del dic["k2"]
4 dic.popitem()

 

    3.修改

     dic[key] = value   强制修改

     dic.update(dict)  更新/升级

 

1 dic = {"k1":"v1","k2":"v2","k3":"v3"}
2 dic1 = {"q1":"w1","q2":"w2","q3":"w3"}
3 dic["k1"] = "b1"
4 dic.update(dic1)

 

 

    4.查找

      for 循环            默认是获取字典中的键

      dic[key]          查看1:没有这个键的时候会报错

      dic.get(key,返回值)  查看2:没有则返回None,可指定返回内容

      dic.setdefault(key)   查看3:没有则返回None

 

1 dic = {"k1":"v1","k2":"v2","k3":"v3"}
2 for i in dic:
3     print(i)
4 print(dic["k1"])
5 print(dic.get("k2"))
6 print(dic.setdefault("k3"))

 

 

 

  3.字典的其他操作:

    keys     获取到所有的键存在一个高仿的列表中

    values    获取到所有的值存在一个高仿的列表中

    items      获取到所有的键值对已元祖的形式存在一个高仿的列表中

 

1 dic = {"k1":"v1","k2":"v2","k3":"v3"}
2 for i in dic.keys():
3     print(i)
4 for i in dic.values():
5     print(i)
6 for i in dic.items():
7     print(i)

 

 

 

    解构:

      a,b = 1, 2

      a,b = (1,2)

      a,b = [1,2]

 

1 dic = {"k1":"v1","k2":"v2","k3":"v3"}
2 for a,b in dic.items():
3     print(a)
4     print(b)

 

 

 

  4.字典的嵌套

    dic = {key1:value1,key2:value2,{key3:value3,key4:value4}}

 

 1 dic = {'name':'小明','age':15,'family':{
 2                     'name':'大明',
 3                     'age':39,
 4                     'salary':100000
 5                 },
 6                 'friend':[
 7                     {'name':'熊大','age':16},
 8                     {'name':'熊二','age':14},
 9                 ]
10             }
11 print(dic['friend'][1]['name'])

 

posted @ 2018-08-01 19:31  AndyStrack  阅读(272)  评论(0编辑  收藏  举报