字典 课堂笔记整理

字典

字典:

    • 定义:字典是一系列键值对。key-value。

  储存大量关系型数据,由于可以使用二分法,查询速度非常快。

  

  • 数据类型分类

    •  可变性

      • 可变数据类型(不可哈希):list、dict、set
      • 不可变数据类型(可哈希):str、int、bool、tuple
    •     容器类型

      • 容器类:可承载各种数据类型:list、dic  

 

  • 字典的增减改查

  •  

 

    •   增 

        • 1.直接添加型:dic[key] = "value'         备注:有则覆盖原值,无则添加新的键值对。。有‘改’的功能
        • 2.setdefault()
            • dic.setdefault("key","value") 备注:无则添加键值对,有则不变,维持原键值对。 

 

1 dic = {"name":"jin",
2        "age":18,
3        "sex":"male",
4        }
5 dic.setdefault('hobby')
6 dic.setdefault('hobby','girl')
7 dic.setdefault('name','ritian')
8 print(dic)

 

输出结果

{'name': 'jin', 'age': 18, 'sex': 'male', 'hobby': None}

 

 

 

    •   减

        • 1.(首推!!)弹出函数:dic.pop()  
            • 有返回值,返回的是相对应键的值
            • 通过dic.pop("key")删除的是键值对。
            • 若没有对应的键,就报错。
                • 去除报错:dic.pop("key",‘None’)  ###设定报错时的返回值。

 

        • 2.dic.clear():清空字典。
        • 3.del dic :删除字典
                • del dic[key]:删除键值对
        • 4.dic.popitem():随机删除键值对。有返回值,返回元组形式的键值对   
                • 3.6以后,删除最后一个键值对                            
    •        改   

        • 1. dic[kay] = value 

        • 2. dic.update(dic2):将dic2的键值对覆盖添加到dic中。。               有则改之,无则添加,多余保留

            实例

 

1 dic = {"name":"jin","age":18,"sex":"male"}
2 dic2 = {"name":"alex","weight":75}
3 dic2.update(dic)  # 将dic键值对,覆盖并添加到dic2
4 print(dic)
5 print(dic2)

 

输出结果:

1 {'name': 'jin', 'age': 18, 'sex': 'male'}
2 {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}
    •  查

        • 1.dic[key] = 值 ,如果没有对应的值,就报错
        • 2(首推!!!).dic.get(key,设置返回值)
          • 默认返回值是None,可以设置返回值,
    •  其他方法

        • keys()、values(): dic.keys()、dic.values()类似列表而不是列表。可以遍历打印  

        • item():[(key1:value1),(key2:value2)] 

    •  分别赋值

1 a,b = 2,3
2 print(a,b)
3 a,b = (2,3)
4 print(a,b)
5 a,b = [2,3]
6 print(a,b)

输出结果:

2 3
2 3
2 3

实例

1 a = 4
2 b = 5
3 a,b = b,a
4 print(a,b)

输出结果:

 5 4

 

 


 

    

  •  数据类型补充           

  1.    对于list,在循环一个列表式,最好不要进行删除的操作,容易出错。因为删除会改变列表的索引。     
  2.      在循环字典中,不能对字典中的键值对进行增加或者删除。
  3.           fromkeys
1 dic = dict.fromkeys('abc','alex')
2 print(dic)
3 dic = dict.fromkeys([1,2,3],[])
4 print(dic)
5 dic[1].append('老男孩')
6 print(dic)
1 {'a': 'alex', 'b': 'alex', 'c': 'alex'}
2 {1: [], 2: [], 3: []}
3 {1: ['老男孩'], 2: ['老男孩'], 3: ['老男孩']}      ####   fromkeys()添加的值在内存空间属于一个,所以改变一个值,其他值都跟着改变。

 

       

posted on 2018-03-22 15:14  弃疾  阅读(110)  评论(0)    收藏  举报

导航