• python基础数据类型--dict 字典


    字典

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

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

    在字典中,key的数据类型必须是不可变的,而value可以是任何数据类型,此外key必须是唯一的,否则覆盖之前的

    # 数据类型分类:
    #       可变的(不可哈希)数据类型:list ,dict
    #       不可变的(哈希)数据类型:str,int,bool,tuple
    dic = {
      'name':1,
      1:'kingfan',
      (1,2):{'name':'kingfan'}
    }

    字典的增方法

    字典增常用的方法主要有两种:1、通过key直接增加。2、setdefault方法增加.

    1、通过key增加

    通过dic[key] = value方法增加,当输入的key在原字典没有时,会生成新的key-value对。如果输入的key在字典中已经存在,则会替换原key-value对中的value

    dic = {'name':'王帆','age':18}
    dic['sex'] = ''
    print(dic)
    #打印结果:{'name': '王帆', 'age': 18, 'sex': '男'}

    dic = {'name':'王帆','age':18}
    dic['age'] = 22
    print(dic)

    #打印结果:{'name': '王帆', 'age': 22}
     

    2、setdefault方法

     使用方式dic.setdefault(key,value),该方法会在字典中先寻找该key,如果字典中没有key,则在字典中添加新的key-value对,并返回新的value值。但是如果key已经存在,则不会进行任何操作,并返回原key对应的value值。

      如下程序演示,当key = 'sex'时,由于字典中本来是没有该key,则会生成新的key-value对添加到字典中,并返回新value值,

    当输入‘name’时由于字典中本身有该key,则不会对字典进行操作并返回该key在字典中对应的value

    dic = {'name':'王帆','age':18}
    print(dic.setdefault('sex',''))
    print(dic)
    #运行结果:男
    #{'name': '王帆', 'age': 18, 'sex': '男'} 
    
    dic = {'name':'王帆','age':18}
    print(dic.setdefault('name','杨莉'))
    print(dic)
    #运行结果:
    #王帆
    #{'name': '王帆', 'age': 18}

    字典的删方法

    1.pop

    pop(key)会根据字典的key去查找并删除键值对,并返回value值,但是如果字典中没有该key则会默认返回错误,但是可以修改返回值。

    dic = {'name':'王帆','age':18}
    print(dic.pop('age'))
    print(dic)
    #运行结果:
    #18
    #{'name': '王帆'}

    当输入的key不在字典中时字典不会被操作,程序运行默认报错,但我们可以修改返回值不报错。

    dic = {'name':'王帆','age':18}
    print(dic.pop('aa','字典中没有该key'))
    print(dic)
    #运行结果:
    #字典中没有该key
    #{'name': '王帆', 'age': 18}

    2.popitem()

    popitem(),在python3.5之前是随机删除字典中的一个键值对,在python3.5之后是删除最后一个键值对

    dic = {'name':'王帆','age':18}
    dic.popitem()
    print(dic)
    #运行结果
    #{'name': '王帆'}

    3.clear

    清空整个字典

    dic = {'name':'王帆','age':18}
    dic.clear()
    print(dic)
    #运行结果
    #{}

    4.del

    通用del方法,可根据寻找key值删除键值对,也可以从内存上删除整个字典

    dic = {'name':'王帆','age':18}
    del dic['age']
    print(dic)
    #运行结果:{'name': '王帆'} dic
    = {'name':'王帆','age':18} del dic  #从内存上删除整个dic

    字典的改方法

    字典改方法主要通过直接更改或更新

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

    字典的查方法

    # value1 = dic["name"]  # 没有会报错
    # print(value1)
    #
    # value2 = dic.get("djffdsafg","默认返回值")  # 没有可以返回设定的返回值
    # print(value2)
  • 相关阅读:
    转 oracle catalog 库常用脚本
    转 【ORACLE】ORA-12537 问题整理
    转 Trace a specific ORA- error
    15%
    MySQL 存储过程
    MySQL 命令行客户机的分隔符
    MySQL 连接join
    MySQL 正则表达式
    MySQL 日期时间函数
    Arthas 快速入门
  • 原文地址:https://www.cnblogs.com/Kingfan1993/p/9442455.html
Copyright © 2020-2023  润新知