python字典操作(Dictionary)

系统 1569 0

字典是另一种可变容器模型,且可存储任意类型对象。

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

            
              d 
              
                =
              
              
                {
              
              key1 
              
                :
              
               value1
              
                ,
              
               key2 
              
                :
              
               value2 
              
                }
              
            
          

键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
一个简单的实例:

            
              
                dict
              
              
                =
              
              
                {
              
              
                'WJ'
              
              
                :
              
              
                'female'
              
              
                ,
              
              
                'CT'
              
              
                :
              
              
                'male'
              
              
                }
              
            
          

这里主要说明一键一值和一键多值的情况。

一、 一键一值

  1. 访问字典中的值: dict[key] 返回key对应的值value
            
              
                print
              
              
                (
              
              
                dict
              
              
                [
              
              
                'WJ'
              
              
                ]
              
              
                )
              
              
                # 代码结果
              
              
female

            
          
  1. 为字典增加一项: dict[key] = value
            
              
                dict
              
              
                [
              
              
                'XXT'
              
              
                ]
              
              
                =
              
              
                'male'
              
              
                print
              
              
                (
              
              
                dict
              
              
                )
              
              
                # 代码结果
              
              
                {
              
              
                'WJ'
              
              
                :
              
              
                'female'
              
              
                ,
              
              
                'CT'
              
              
                :
              
              
                'male'
              
              
                ,
              
              
                'XXT'
              
              
                :
              
              
                'male'
              
              
                }
              
            
          
  1. 删除字典的一项: del dict[key] 或者 dict.pop[key]
            
              
                del
              
              
                dict
              
              
                [
              
              
                'WJ'
              
              
                ]
              
              
                # 代码结果
              
              
                {
              
              
                'CT'
              
              
                :
              
              
                'male'
              
              
                ,
              
              
                'XXT'
              
              
                :
              
              
                'male'
              
              
                }
              
            
          
  1. 遍历字典
            
              
                for
              
               key 
              
                in
              
              
                dict
              
              
                :
              
              
                print
              
              
                (
              
              key 
              
                +
              
              
                ':'
              
              
                +
              
              
                dict
              
              
                [
              
              key
              
                ]
              
              
                )
              
              
                # 代码结果
              
              
WJ
              
                :
              
              female
CT
              
                :
              
              male
XXT
              
                :
              
              male

            
          
  1. 判断一个键是否在字典中: in 或者 not in
            
              
                'WJ'
              
              
                in
              
              
                dict
              
              
                # True
              
              
                'XXJ'
              
              
                not
              
              
                in
              
              
                dict
              
              
                # True
              
            
          

二、一键多值(defaultdict类)

  1. 这里按照append顺序设置下标,下标表示类似二维数组
            
              
                from
              
               collections 
              
                import
              
               defaultdict

              
                dict
              
              
                =
              
               defaultdict
              
                (
              
              
                list
              
              
                )
              
              
                # 这里如果希望消除重复元素(且不在意他们的顺序),就用集合。set
              
              
                dict
              
              
                =
              
               defaultdict
              
                (
              
              
                list
              
              
                )
              
              
                dict
              
              
                [
              
              
                'WJ'
              
              
                ]
              
              
                .
              
              append
              
                (
              
              
                'female'
              
              
                )
              
              
                dict
              
              
                [
              
              
                'WJ'
              
              
                ]
              
              
                .
              
              append
              
                (
              
              
                22
              
              
                )
              
              
                dict
              
              
                [
              
              
                'CT'
              
              
                ]
              
              
                .
              
              append
              
                (
              
              
                'male'
              
              
                )
              
              
                print
              
              
                (
              
              
                dict
              
              
                )
              
              
                # 代码结果
              
              
defaultdict
              
                (
              
              
                <
              
              
                class
              
              
                'list'
              
              
                >
              
              
                ,
              
              
                {
              
              
                'WJ'
              
              
                :
              
              
                [
              
              
                'female'
              
              
                ,
              
              
                22
              
              
                ]
              
              
                ,
              
              
                'CT'
              
              
                :
              
              
                [
              
              
                'male'
              
              
                ]
              
              
                }
              
              
                )
              
            
          
  1. 遍历字典
            
              
                for
              
               x 
              
                in
              
              
                dict
              
              
                :
              
              
                print
              
              
                (
              
              x 
              
                +
              
              
                ':'
              
              
                +
              
              
                str
              
              
                (
              
              
                dict
              
              
                [
              
              x
              
                ]
              
              
                )
              
              
                )
              
              
                # 代码结果
              
              
WJ
              
                :
              
              
                [
              
              
                'female'
              
              
                ,
              
              
                22
              
              
                ]
              
              
CT
              
                :
              
              
                [
              
              
                'male'
              
              
                ]
              
            
          
  1. 访问多个值中的某个值:
    这里类似数组下标的访问
            
              
                print
              
              
                (
              
              
                dict
              
              
                [
              
              
                'WJ'
              
              
                ]
              
              
                [
              
              
                0
              
              
                ]
              
              
                +
              
              
                ','
              
              
                +
              
              
                str
              
              
                (
              
              
                dict
              
              
                [
              
              
                'WJ'
              
              
                ]
              
              
                [
              
              
                1
              
              
                ]
              
              
                )
              
              
                )
              
              
                # 代码结果
              
              
female
              
                ,
              
              
                22
              
            
          
  1. 字典排序
    排序我们使用sorted,如下:

sorted(L.items(), key=lambda x:x[0], reverse=True)

reverse=True 代表降序,默认为升序;lambda x:x[0] 是设置按照x[0]进行排序,x[0]表示key;x[1]表示value,在一键多值情况下需要使用类似二维数组的表示方法,举例如下:

            
              
                from
              
               collections 
              
                import
              
               defaultdict

              
                dict
              
              
                =
              
               defaultdict
              
                (
              
              
                list
              
              
                )
              
              
                dict
              
              
                [
              
              
                'WJ'
              
              
                ]
              
              
                .
              
              append
              
                (
              
              
                'female'
              
              
                )
              
              
                dict
              
              
                [
              
              
                'WJ'
              
              
                ]
              
              
                .
              
              append
              
                (
              
              
                22
              
              
                )
              
              
                dict
              
              
                [
              
              
                'CT'
              
              
                ]
              
              
                .
              
              append
              
                (
              
              
                'male'
              
              
                )
              
              
                dict
              
              
                [
              
              
                'CT'
              
              
                ]
              
              
                .
              
              append
              
                (
              
              
                23
              
              
                )
              
              
                print
              
              
                (
              
              
                dict
              
              
                )
              
              
                dict
              
              
                =
              
              
                sorted
              
              
                (
              
              
                dict
              
              
                .
              
              items
              
                (
              
              
                )
              
              
                ,
              
               key
              
                =
              
              
                lambda
              
               x
              
                :
              
              x
              
                [
              
              
                1
              
              
                ]
              
              
                [
              
              
                0
              
              
                ]
              
              
                )
              
              
                # 代表value的第一个值
              
              
                print
              
              
                (
              
              
                dict
              
              
                )
              
              
                # 代码结果
              
              
排序前: defaultdict
              
                (
              
              
                <
              
              
                class
              
              
                'list'
              
              
                >
              
              
                ,
              
              
                {
              
              
                'WJ'
              
              
                :
              
              
                [
              
              
                'female'
              
              
                ,
              
              
                22
              
              
                ]
              
              
                ,
              
              
                'CT'
              
              
                :
              
              
                [
              
              
                'male'
              
              
                ,
              
              
                23
              
              
                ]
              
              
                }
              
              
                )
              
              
排序后: 
              
                [
              
              
                (
              
              
                'WJ'
              
              
                ,
              
              
                [
              
              
                'female'
              
              
                ,
              
              
                22
              
              
                ]
              
              
                )
              
              
                ,
              
              
                (
              
              
                'CT'
              
              
                ,
              
              
                [
              
              
                'male'
              
              
                ,
              
              
                23
              
              
                ]
              
              
                )
              
              
                ]
              
            
          

这里我们注意排序后的dict为一个tuple元组
下面用一个实际例子说明一键多值的用法: 见下面链接
https://blog.csdn.net/CT_WJ/article/details/95005180


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论