zoukankan      html  css  js  c++  java
  • python_字典

    字典是python中唯一的映射(映射就是对应关系的意思)类型,采用键值对(key:value)的形式存储数据。

    python对字典中的key进行哈希计算,根据计算的结果来决定value存储在那个内存空间中,所以也就导致字典的独特的属性:   

      1、顺序是无序的。

      2、key必须在内存中是唯一的且必须是不可变类型

       (注:不可变类型有整型、字符串、元组。不可变类型有列表、字典)

        3、value可以是任意形式的数据类型

    字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

    1 dic={‘name’:'Adair','age':'28','hobby':['Blue ball','football','volleyball']}

    字典的增删改查:

    1、增:

    1 dic[hobby]='basketball'

      这种方法是传统对字典进行增加操作的方法:如果增加的key已经存在,则进行替换,不存在则进行添加。

    1 dic['names']='yefei'
    2 dic1=dic.setdefault('name','it')
    3 print(dic)
    4 print(dic1)

    使用setdefault方法对字典进行增加操作时,若增加的key已存在,则不会覆盖,返回该key原先的值。若增加的key不存在,则会进行增加,并返回该key的值。

     2、查:

     查询字典的value是通过key查找:

     1 print(dic['name']) 

    使用keys方法查询字典所有的key:

    1 print(dic.keys())
    >>>dict_keys(['name', 'age', 'hobby']

    使用values方法查询字典中所有的value:

    1 print(dic.values())
    >>>dict_values(['Adair', 28, ['Blue ball', 'football', 'volleyball']]

    使用item方法可以以元组的形式展现的键值对:

    1 print(dic.items())
    >>>dict_items([('name', 'Adair'), ('age', 28), ('hobby', ['Blue ball', 'football', 'volleyball'])

    以上用方法查询的结果都是一种字典特殊的数据类型的展示的,如想对查询结果进行可用list()将其转换成列表的形式。

    3、改:

    通过key进行修改:

    1 dic['name']='xiaohei'

    使用update方法对两个字典进行合并,如key有重复则会覆盖:

    1 dic1={'a':1,'b':2,'c':3}
    2 dic.update(dic1)
    3 print(dic)
     >>>{'name': 'xiaohei', 'age': 28, 'hobby': ['Blue ball', 'football', 'volleyball'], 'a': 1, 'b': 2, 'c': 3}

    4、删:

    1 del dic  #在内存清空整个字典
    2 del dic['name'] #删除字典中的某个元素
    3 dic.clear() #清空字典中的所有对象
    4 dic.pop('name')#删除字典中的某个元素,并返回删除的value值
    5 dic.popitem()#随机删除一个元素,并返回删除的value值

    字典其他内置方法:

    创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

     1 dic1=dict.fromkeys(['A','B','C'],1)
     2 >>>{'A': 1, 'B': 1, 'C': 1}
     3 
     4 dic1['A']='aaa'  #只修改指定的一个value值
     5 >>>{'A': 'aaa', 'B': 1, 'C': 1}
     6 
     7 dic2=dict.fromkeys(['A','B','C'],[1,2])
     8 >>>{'A': [1, 2], 'B': [1, 2], 'C': [1, 2]}
     9 
    10 dic2['A'][1]=222  #会修改所有key的值
    11 >>>{'A': [1, 222], 'B': [1, 222], 'C': [1, 222]}

    字典的排序:

    根据ASCII码的位置对key进行排序:

    1 print(sorted(dic))

    根据ASCII码的位置对value进行排序:

    1 print(sorted(dic2.values()))

    字典遍历:

    1 for i in dic3:
    2     print(i)    #默认遍历的是key
    3 
    4 for i in dic3:
    5     print(i,dic3[i])  #通过字典查找的方式遍历出键值对,效率高。
    6 7 for i,v in dic3.items():
    8     print(i,v)          #通过items方式遍历出键值对,将字典转换成了元组,效率低。
  • 相关阅读:
    jquery效果,多个div,点击任何一个div,那么这个div会切换文字,变换背景颜色,再次点击其他的div ,这个div会发生刚才的变化,之前点击的div的颜色会变回来
    用js动态的改变img标签里面的src属性实现图片的循环切换
    清除浮动
    清除浮动clearfix
    转移符 个人工作中使用记录一下
    12.Django数据库操作(执行原生SQL)
    11.Django数据库操作(查)
    10.Django数据库操作(增删改)
    9.Django里的数据同步migrations命令
    8.Django模型类例子
  • 原文地址:https://www.cnblogs.com/Adairye/p/8507003.html
Copyright © 2011-2022 走看看