python修炼之路-day5

一.字典

  字典的介绍:

    1.用大括号{} 括起来. 内部使用key:value的形式来保存数据

    2.注意:字典的key必须是可哈希的. 不可变的, value 没有限制

    3.字典保存顺序不是按照我们输入的顺序保存的

  

  字典的操作方法:

    增:

      通过key添加,key不存在于原字典中才可添加,不然会替代原先的value

1 dic = {'林俊杰': '圣所', '薛之谦': '演员', '华晨宇': '悟空', '张杰': 100}
2 dic['jc'] = "说散就散"
3 print(dic)

      

      setdefault()  :从字典末尾添加元素

1 dic = {'林俊杰': '圣所', '薛之谦': '演员', '华晨宇': '悟空', '张杰': 100}
2 dic.setdefault("cat", "study cat sing")
3 dic.setdefault("cat", "la ji")    # 如果字典中已经包含了这个key,将不再保存
4 print(dic)

    

    删:

      pop():删除字典中的元素,并返回删除的元素,可用变量接收

1 dic = {1: 'Java', 2: 'c', 3: 'c++', 4: 'python'}
2 ret = dic.pop(3)   # 通过key删除元素,返回这个元素的value值
3 print(ret)
4 print(dic)

      del  : 删除字典中的元素

1 dic = {1: 'Java', 2: 'c', 3: 'c++', 4: 'python'}
2 del dic[1]
3 print(dic)

      items()随机删除

1 dic = {1: 'Java', 2: 'c', 3: 'c++', 4: 'python'}
2 ret = dic.popitem()   # 随机删除一个元素,返回一个元组
3 print(dic)
4 print(ret)

      clear()清空字典中所有元素

dic = {1: 'Java', 2: 'c', 3: 'c++', 4: 'python'}
dic.clear()
print(dic)

    改:

      dict[存在的值] = 新值    相当于赋值

      dict.update(dict2)   把dict2的键值对(k-v)更新到dict中

1 dic1 = {"李晨":"范冰冰", "邓超":"孙俪", "王祖蓝":"李亚男"}
2 dic2 = {"李晨":"张馨予", "郑凯":"baby", "王宝强":"马蓉"}
3 dic1.update(dic2)   #  把dic2中的内容更新到 dic1 , 如果存在了key. 替换. 如果不存在,添加
4 print(dic1)
5 print(dic2)

    查:

      get():查询字典中元素

1 dic = {"及时雨":"宋江", "小李广":"花荣", "黑旋风":"李逵", "易大师":"剑圣"}
2 print(dic.get("易大师", "余小C"))   # 如果key不存在. 返回None

      setdefault():字典中已经存在的key将不会再被添加,从而达到查询的效果

1 dic = {"及时雨":"宋江", "易大师":"剑圣"}
2 dic.setdefault("及时雨", "诺克萨斯")    # 可以帮我们查询
3 print(dic)

      dict[key]  :  通过key查询字典中的元素

1 dic = {"及时雨":"宋江", "小李广":"花荣", "黑旋风":"李逵", "易大师":"剑圣"}
2 print(dic["及时雨"])

  字典的常用操作:

      1. keys() 返回所有字典的key的集合(高仿列表)

1 dic = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}
2 for key in dic.keys():  # 可以进行迭代循环
3     print(key)


            2. values() 返回所有的value的集合

1 dic = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}
2 for value in dic.values():
3     print(value)


            3. items()  返回键值对. 元组

1 dic = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}
2 for k, v in dic.items():
3     print(k , v)

解构,解包 

1 a, b = (1, 2)

2 print(a)

3 print(b) 

  字典的嵌套: 

 1 dic = {
 2     "name":"汪峰",
 3     "age": 58,
 4     "wife":{
 5         "name":"国际章",
 6         "salary": 180000,
 7         "age": 37
 8     },
 9     "children":[
10         {"name":"老大", "age": 18},
11         {"name":"老二", "age": 118}
12     ]
13 }
14 print(dic["children"][1]["age"])
15 
16 print(dic["wife"]['salary'])

猜你喜欢

转载自www.cnblogs.com/child-king/p/9273092.html