Python基础5(dict:字典)

数组类型

  数据类型划分:可变数据类型、不可变数据类型

  不可变数据类型:元组, bool, int, str    可哈西

  可变数据类型    :list, dict, set           不可哈西

  字典(dict): key 必须是不可变数据类型,可哈西

        value 任意数据类型

  字典 (dict):优点:二分法去查询

            存储大量的关系型数据

         特点:无序的

字典

    字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:                   数字、字符串、元组。

          字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

    增

1 dic1 = {"age": 18, "name": "jan", "sex": "male"}
2 # dic1["heea"] = 185  # 没有键值对,添加
3 # dic1["age"] = 99 #有键值对,覆盖
4 
5 # dic1.setdefault("while")  # 有键值对不做任何改变,没有才添加  值可为空
6 # dic1.setdefault("age", [38])
7 # dic1.setdefault("while", 99)

    删

1 dic1 = {"age": 18, "name": "jan", "sex": "male"}
2 # print(dic1.pop("age"))  # 有返回值按键去删除
3 # print(dic1.pop("ss", "无此键"))  #可设置返回值
4 # print(dic1.popitem())  #随机删除 有返回值 元组里面是删除的键值
5 # del dic1["age"]  # del 删除  有此键删除 无此键报错
6 # del dic1["ss"]   # KeyError: 'ss'
7 # dic1.clear()  # 清空字典

    改

1 dic1 = {"age": 18, "name": "jan", "sex": "male"}
2 # dic1["age"] = "22"  # 直接修改
3 # dil2 = {"name": "77"}
4 # dic1.update(dil2)  # 把第二个更新到第一个里
5 # print(dic1)

    查

 1 dic1 = {"age": 18, "name": "jan", "sex": "male"}
 2 # print(dic1.keys(), type(dic1.keys()))  # 按照键去查询
 3 # print(dic1.values(), type(dic1.values()))  # 按照值去查询
 4 # print(dic1.items(), type(dic1.items()))  # 按照键值对查询
 5 # 循环查询
 6 # for i in dic1.items():    # items  随意改为  keys values 或 空   例dic1
 7 #     print(i, type(i))
 8 # for i, v in dic1.items():  # 分别查询
 9 #     print(i, v)
10 # v1 = dic1["name"]  # 此方法查询如果无此键,会报错v1 = dic1["name1"]
11 # print(v1)
12 # print((dic1.get("name1", "没有这个键")))  #建议使用此方法,可自定义如无此键的提示,默认为None

  dict 嵌套

 1 dic = {
 2         'name':['alex','wusir','taibai'],
 3         'py9':{'1213':123,
 4         'learn_money':19800 ,
 5         'adder':'cbd',
 6                 },
 7         'age':21
 8         }
 9 dic['age'] = 56
10 dic['name'].append('ritian')
11 dic['name'][1] = dic['name'][1].upper()

 

posted @ 2017-12-20 15:58  争-渡  阅读(161)  评论(0)    收藏  举报