• 字典的操作用法小总结


    字典

     

    dic = {'name':'Laonanhai',
                'age':45,    
                'name_list':['反面教材','俊俊',....]
                }

    基础数据类型之一,{} 以键值对的形式存储数据。

     以key:value形式,映射,存储的大量的关系型数据。

     数据类型的分类:

            可变(不可哈希hash):list,dict,set, list = [11,222,333]

            不可变(可哈希hash):str,tuple,int,bool   name = 'alex'

      容器类:

                容器类的数据类型:list,tuple,dict, l1 = [11,True,'alex',[22,33,44]]

                非容器类的数据类型:str,int,bool。 s1 = '[11,22,33]'

     字典的key必须是不可变的数据类型,是唯一的,

                 

                  hash算法:

                字典的键通过hash表转换成数字,采用二分查找查询数字

               

          字典的value可以是任意数据类型。

         字典的查询速度非常快,存储的大量的关系型数据。

         字典在python3.5包含3.5之前都是无序,但3.6之后是有序的。

    # 键唯一

    # dic = {

    #     'name': 'alex',

    #     'name': 'WuSir',

    # }

    # print(dic)

    # 键必须是不可变得可哈希的数据类型

    # dic = {

    #     'name': 'alex',

    #     [1, 2, 3]: 'values',

    # }

    # print(dic)

        4,字典的增删改查及其他操作

                     

              dic = {'name': '老男孩', 'age': 56, 'hobby': 'women'}

       增

    # dic['sex'] = 'LaddyBoy'
    # dic['name'] = 'Alex'  有则覆盖,没有就添加
    # dic.setdefault('sex')
    # dic.setdefault('sex', 'Laddyboy') 有则不变,无则添加。
    # dic.setdefault('name', 'alex')
    # print(dic)

     

        pop

    # print(dic.pop('age'))  # 有返回值,返回的是键对应的值
    # print(dic.pop('age1', '没有此键...'))
    # print(dic)

        clear

    # dic.clear() 清空字典
    # print(dic)

        popitem

    # print(dic.popitem())  # 随机删除,有返回值,返回值为元组,里面是删除的键值对。
    # print(dic)

       del

    # 1,删除整个字典
    # del dic
    # 2,按照键删除键值对
    # del dic['name']
    # print(dic)

      改

    # 1, dic['name'] = 'Alex'  有则覆盖,没有就添加

     update  两个字典的更新

    # dic = {"name": "jin", "age": 18, "sex": "male"}
    # dic2 = {"name": "alex", "weight": 75}
    # dic2.update(dic)  # 将dic里面的所有键值对 覆盖添加到dic2中,dic不变
    # print(dic)  # {'name': 'jin', 'age': 18, 'sex': 'male'}
    # print(dic2)  # {'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}

    # 1,dic['name']
    # print(dic['name1'])
    # 2,dic.get('name')
    # print(dic.get('name'))
    # print(dic.get('name1'))
    # print(dic.get('name1', 'sb没有此键'))

      for循环 查询  

    # dic.keys(), dic.values(), dic.items()  #类似于list但不是list的类型。

    # print(dic.keys(),type(dic.keys()))
    # for key in dic.keys():
    #     print(key)
    # l_key = list(dic.keys())
    # print(l_key)
    # for value in dic.values():
    #     print(value)
    # l_value = list(dic.values())
    # print(l_value)
    # print(dic.items())

    引入  分别赋值概念

    # a, b = 1, 2
    # a, b = ('alex', '34')
    # a, b = ['alex', '34']

    # 有 如下 a = 1 b = 3,用一行代码将a b值互换。

    # a = 1
    # b = 3
    # a, b = b, a
    # for k,v in dic.items(): # [('name', '老男孩'), ('age', 56), ('hobby', 'women')]
    #  print(k,v)

    字典的嵌套

    PS

    dic = {
        'name_list': ['碗蓉', '俊俊', '爽妹'],
        'status': None,
        'personal_msg': {
            'name': '反面教材',
            'age': 25,
            'hobby_list': ['抽烟', '喝酒', '烫头'],
        }
    }
    # 1,给dic添加一个键值对,学校:老男孩
    # dic['学校'] = '老男孩'
    # print(dic)
    # 2,将status对应的值改成True
    # dic['status'] = True
    # print(dic)
    # 3,给name_list对应的列表追加一个元素:平平
    # print(dic['name_list'])
    # dic['name_list'].append('平平')
    # print(dic)
    # 4,给personal_msg对应的字典添加一个键值对sex:男
    # dic2 = dic['personal_msg']
    # dic2['sex'] = '男'
    # print(dic)
    # dic['personal_msg']['sex'] = '男'
    # print(dic)
    # 5,将hobby_list 对应的列表中的烫头改成唱歌。
    # dic['personal_msg']['hobby_list'][-1] = '唱歌'
    # print(dic)
  • 相关阅读:
    hadoop 2.5 hdfs namenode –format 出错Usage: java NameNode [-backup] |
    自己动手编译hadoop-2.5.2源码
    CentOS Linux解决Device eth0 does not seem to be present
    Liz Murray成功故事的偶然与必然(转)
    【BZOJ4242】水壶(克鲁斯卡尔重构树,BFS)
    【BZOJ3551】Peaks加强版(Kruskal重构树,主席树)
    【agc023E】Inversions(线段树,动态规划)
    【CF183D】T-shirt(动态规划,贪心)
    【BZOJ2423】最长公共子序列(动态规划)
    【BZOJ2118】墨墨的等式(最短路)
  • 原文地址:https://www.cnblogs.com/HoneyTYX/p/8986057.html
Copyright © 2020-2023  润新知