• python' s fifth day for me dict


    字典 dict :

          key--vlaue

          储存大量的数据,而且是关系型数据,查询速度快(二分查询)

    数据类型分类:

          可变数据类型(不可哈希):list(列表) , dict(字典), set(集合)

          不可变数据类型(可哈希):int(整型), bool(布尔型), str(字符串), tuple(元组)

              字典的键: 不可变数据类型。

              字典的值: 任意数据类型。

          容器类型:

              容器类(承载各种数据类型):list , tuple , dict

    字典的键是唯一的。

    字典的顺序:

          3.5之前,字典是无序的。

          3.6开始,字典创建的时候,按照一定的顺序插入数值,看起来是有序的。

    字典的  增 删 改 查

       增

          第一种:有则覆盖,无则添加。

    1 dic = {
    2     'name':'顾清秋',
    3     'age':'17',
    4     'hobby':'Msusic'
    5        }
    6 print(dic)
    7 dic['name'] = '懒笨呆'
    8 dic['addr'] = '学校'
    9 print(dic)

           第二种:无则添加,有则不变。

    1 dic = {
    2     'name':'顾清秋',
    3     'age':'17',
    4     'hobby':'Msusic'
    5        }
    6 print(dic)
    7 dic.setdefault('name','懒笨呆')
    8 dic.setdefault('addr','学校')
    9 print(dic)

        删   pop(key)  有返回值,如果删除的是不存在的键会报错,所以一般自定义返回内容

    一般定义为None. pop(key,None)

    1 dic = {
    2     'name':'顾清秋',
    3     'age':'17',
    4     'hobby':'Msusic'
    5        }
    6 print(dic.pop('hobby'))
    7 print(dic.pop('addr',None))
    8 print(dic)

          clear  清空字典内容,且保存空字典。

    1 dic = {
    2     'name':'顾清秋',
    3     'age':'17',
    4     'hobby':'Msusic'
    5        }
    6 dic.clear()
    7 print(dic)

         del  删除字典或者指定键删除。

    1 dic = {
    2     'name':'顾清秋',
    3     'age':'17',
    4     'hobby':'Msusic'
    5        }
    6 # del dic
    7 # print(dic)
    8 del dic['name']
    9 print(dic)

         popitem    随机删除  返回删除的元组形式的键值对

    1 dic = {
    2     'name':'顾清秋',
    3     'age':'17',
    4     'hobby':'Msusic'
    5        }
    6 dic.popitem()
    7 print(dic)

       改

              第一种:直接对已有的键进行赋值。覆盖原有的value.

    1 dic = {
    2     'name':'顾清秋',
    3     'age':'17',
    4     'hobby':'Msusic'
    5        }
    6 dic['name'] = '懒笨呆'
    7 print(dic)

           第二种:update    两个字典(dic,dic2),dic.update(dic2) ,  dic2 不变。dic2 直接将 dic 中原有的键值对覆盖  并且将 dic2 多出来的键值对添加到 dic 中。

     1 dic = {
     2     'name':'顾清秋',
     3     'age':'17',
     4     'hobby':'Msusic'
     5        }
     6 dic2 = {
     7         'name':'懒笨呆',
     8         'addr':'学校'
     9        }
    10 dic.update(dic2)
    11 print(dic2)
    12 print(dic)

          查   dict [key]   如果key不存在,则会报错。

    1 dic = {
    2     'name':'顾清秋',
    3     'age':'17',
    4     'hobby':'Msusic'
    5        }
    6 print(dic['name'])
    7 print(dic['name1'])

             get(key)  有返回值,默认返回None,可以自定义返回值。get(key,'返回值')

    1 dic = {
    2     'name':'顾清秋',
    3     'age':'17',
    4     'hobby':'Msusic'
    5        }
    6 print(dic.get('name1'))
    7 print(dic.get('name1','没有此键值对'))

         values()   key()  items()  将字典转换成类似列表的类。

     1 dic = {
     2     'name':'顾清秋',
     3     'age':'17',
     4     'hobby':'Msusic'
     5        }
     6 # print(dic.values())
     7 # for i in dic.values():
     8 #     print(i)
     9 # print(dic.keys(),type(dic.keys()))
    10 # for i in dic.keys():
    11 #     print(i)
    12 print(dic.items(),type(dic.items()))
    13 for i in dic.items():
    14     print(i)

     特殊类型 dict 转换成 list

    1 dic = {
    2     'name':'顾清秋',
    3     'age':'17',
    4     'hobby':'Msusic'
    5        }
    6 print(dic.values())   #转化成类似于列表的特殊类型
    7 print(list(dic.keys()))  #特殊类型转换成列表

     概念: 分别赋值

    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)
  • 相关阅读:
    动态调用web服务
    组件设计实战--组件之间的关系 (Event、依赖倒置、Bridge)
    .NET平台下可复用的Tcp通信层实现
    推荐所有的.NET开发人员阅读《J2EE Development without EJB》
    关于跨程序集的反射(续)
    IoC与DI (转载)
    某公司的一道机考题的解答
    使用 EmptyClass 避免条件判断
    EsbAOP应用--权限管理
    企业(分布式)计算十大谬误
  • 原文地址:https://www.cnblogs.com/stfei/p/8624082.html
Copyright © 2020-2023  润新知