• Python中字典的相关操作


    1. Python类似于Java中的哈希表,只是两种语言表示的方式是不一样的,Python中的字典定义如下:

    在Python中是一种可变的容器模型,它是通过一组键(key)值(value)对组成,这种结构类型通常也被称为映射,或者叫关联数组,也有叫哈希表的。每个key-value之间用 " : " 隔开,每组用","分割,整个字典用"{}"括起来(实际上就是一种映射关系)

    2. 下面是关于字典的一些常用的操作:

    ① 创建字典,常用的主要有以下三种方式:

    除了直接用大括号创建字典,还可以用dict( )来创建字典
    用法如下:
    通过放入列表套元组或者元组套列表实现
    或者列表套列表 、元组套元组

     具体的代码如下:

    # -*- coding: utf-8 -*-
    """
    Created on Fri May 17 21:08:34 2019
    """
     
    di = dict([('one', 1), ('two', 2), ('three', 3),('three', 4),('three', 5)])
    print(di)
    print('-' * 20, "
    ")
     
    di = dict((('one', 1), ('two', 2)))
    print(di)
    print('-' * 20, "
    ")
     
    di = dict([['one', 1], ['two1', 2]])
    print(di)
    print('-' * 20, "
    ")
     
    

      

     ② 对字典进行遍历

    for key in dict2:
        print(key)
    print('-' * 20, "
    ")
     
    for key in dict2.keys():
        print(key)
    print('-' * 20, "
    ")    
     
     
    for value in dict2.values():
        print(value)
    print('-' * 20, "
    ")
     
    for key in dict2:
        print('%s--%s' %(key,dict2[key]))
    print('-' * 20, "
    ")
     
    #这样遍历获取到的是一个元祖
    for i in dict3.items():
        print(i)
        print(i[0])
    print('-' * 20, "
    ")
    

      

    ③ dict.clear()
          作用:删除字典中的所有项或元素,无返回值(注意,不是删除字典,而是清空字典内容)

     ④ dict.get(key , default=None)
          作用:返回字典中key对应的值,若key不存在,则返回default的值(default默认为None)    

     ⑤ dict.pop(key [,default])
          作用:如果字典中存在key,则删除并返回key对应的value;如果key不存在,且没有给出default值,则引发KeyError异常

     ⑥ dict.setdefault(key , default = None)
          作用:如果字典不存在key,则由dict[key] = default为其赋值

     ⑦ dict.update(adict) 
           作用:将字典adict中键值对添加到dict中

    3. 具体的代码如下:

    # -*- coding: utf-8 -*-
    """
    Created on Fri May 17 16:59:11 2019
    """
     
    #划重点:键必须是唯一的,必须是不可变的,如字符串,数字,元组
    #值可以是任何数据类型
    #这让我想到了Java中的哈希表
    #1.创建字典
    dict1 = {1: 'zhangsan', 2: 'lisi'}
    print(dict1)
    print(type(dict1))
     
    dict2 = {'name1': 'zhangsan', 'name2': 'lisi'}
    #除了直接用大括号创建字典,还可以用dict()来创建字典
    #用法如下:
    #通过放入列表套元组或者元组套列表实现
    #或者列表套列表 、元组套元组
    #还记得上节课在元组里讲到的列表和元组的相互转换么?
     
    #使用dict来创建字典
    #下面来遍历一下字典中的元素
    for key in dict2:
        print(key)
    print('-' * 20, "
    ")
     
    for key in dict2.keys():
        print(key)
    print('-' * 20, "
    ")    
     
     
    for value in dict2.values():
        print(value)
    print('-' * 20, "
    ")
     
    #遍历
    for key in dict2:
    #    注意在使用输出语句的时候不能够使用逗号
        print('%s--%s' %(key,dict2[key]))
    print('-' * 20, "
    ")
     
     
    #对于字典的操作
    #1.dict.keys()
    #作用:返回包含字典所有key的列表
     
    #2.dict.values()
    #作用:返回包含字典所有value的列表
     
    #3.dict.items()
    #作用:返回包含所有(键,值)项的列表
     
    dict3 = {'xiaoming': 12, 'xiaozhang': 20, 'xiqiaing' : 21}
    for i in dict3.items():
    #这样遍历获取到的是一个元祖所以我们可以按照取出元祖的方式来取出相应的元素
        print(i)
        #取出元祖中的第一个元素
        print(i[0])
    #    print(type(i))
    print('-' * 20, "
    ")
     
     
    #4.dict.clear()
    #作用:删除字典中的所有项或元素,无返回值(注意,不是删除字典,而是清空字典内容)
    dict2.clear()
    print(dict2)
    print('-' * 20, "
    ")
     
     
    #5.dict.get(key , default=None)
    #作用:返回字典中key对应的值,若key不存在,则返回default的值(default默认为None)    
    print(dict3.get('xiaoming'))
    print('-' * 20, "
    ")
     
    #6.dict.pop(key [,default])
    #作用:如果字典中存在key,则删除并返回key对应的value;如果key不存在,且没有给出default值,则引发KeyError异常
    print(dict3.pop('xiqiaing'))
    print(dict3)
    print('-' * 20, "
    ")
     
    #7.dict.setdefault(key , default = None)
    #作用:如果字典不存在key,则由dict[key] = default为其赋值
     
    dict3.setdefault('xiqiaing', 22)
    print(dict3)
     
    #8.dict.update(adict) 
    #作用:将字典adict中键值对添加到dict中
    dict3.update(dict1)
    print(dict3)
    

      


    原文:https://blog.csdn.net/qq_39445165/article/details/90300385

  • 相关阅读:
    114.完全背包【恰好装满完全背包
    整数划分类型题目
    三目运算符
    关于 xk 的位数。
    多重背包二进制原理拆分问题
    2016.4.2 讲课笔记(动态规划)
    二叉树(2)二叉树创建的3种方法,二叉树的递归遍历,二叉树的销毁
    二叉树(1)已知某2种排序方式,创建这个二叉树并按第3种方式排序
    C++知识点总结(二)
    5款优秀的开源克隆软件
  • 原文地址:https://www.cnblogs.com/qbdj/p/10901191.html
Copyright © 2020-2023  润新知