• 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方式遍历出键值对,将字典转换成了元组,效率低。
  • 相关阅读:
    通过命令行指定 Java 程序运行时使用的字符集
    Ubuntu Linux 开启 root 用户及其它登录问题的解决
    SLF4J 的几种实际应用模式 SLF4J+Log4J 与 SLF4J+LogBack
    Java 获取当前时间的年月日方法
    Eclipse 全屏插件
    Linux 下的纯 C 日志函数库: zlog
    如何使用 Log4j
    DAO 设计模式
    为什么要用 /dev/null 2>&1 这样的写法
    NSDate和NSString之间的转换
  • 原文地址:https://www.cnblogs.com/Adairye/p/8507003.html
Copyright © 2020-2023  润新知