Python详解字典小结

  

字典(dict)结构是Python中常用的数据结构,笔者结合自己的实际使用经验,对字典方面的相关知识做个小结,希望能对读者一些启发~

  

<>强创建字典
  

  

常见的字典创建方法就是先建立一个空字典,然后逐一添加键(键)和值(值),比如创建字典人={“名称”:“本”,“年龄”:22岁的“城市”:”上海,“ID”:“073569”},可以使用以下代码:

        人={}      人['名字']=滥贰?   人(“年龄”)=22   人(“城市”)='上海'   人(“ID”)=' 073569 '      打印(人)   之前      

输出结果为:

  
  

{“名称”:“汤姆”,“年龄”:22岁的“城市”:“上海”,“ID”:“073569年}
  

     

这样的创建方式简单原始,代码不够简洁优雅。我们用zip函数,来简单快捷地创建这个字典:

        attrs=[“名称”,“年龄”、“城市”,“ID”)   值=[‘汤姆’,22日,“上海”,“073569”)   人=dict (zip (attrs,值))      打印(人)      之前      

输出结果与原先代码一致。

  

<>强遍历字典
  

  

在实际应用中,我们常常需要遍历字典,实现的方法可参考以下代码:

        attrs=[“名称”,“年龄”、“城市”,“ID”)   值=[‘汤姆’,22日,“上海”,“073569”)   人=dict (zip (attrs,值))      关键,价值person.items ():   print(关键:% 6年代,价值:% s的%(键值))      之前      

输出结果为:

  
  

键:name 价值:汤姆。
  关键:age ,价值:22日
  关键:city 价值:上海
  关键:ID ,,价值:073569
  

     

<强>对调键值对
  

  

在实际应用中,有时候我们需要查找字典中某个值(值)对应的键(关键),遍历字典是一种选择,对调键值对是另一种选择。对调键值对的实现代码如下:

        attrs=[“名称”,“年龄”、“城市”,“ID”)   值=[‘汤姆’,22日,“上海”,“073569”)   人=dict (zip (attrs,值))      打印(“对调前:')   打印(人)      人={v: k, k, v在person.items ()}      打印(“对调后:')   打印(人)      之前      

输出结果为:

  
  

对调前:
  {“名称”:“汤姆”,“年龄”:22岁的“城市”:“上海”,“ID”:“073569年}
  对调后:
  {“汤姆”:“名字”,22日:“年龄”,“上海”:“城市”,“073569”:“ID”}
  

     

<强>有序字典OrderedDict
  

  

Python中的字典是无序的,其取出来的键是无序的,因为它是按照散列来储存的。有时候,我们需要字典的条目(项目)或键(键)是有序储存的,这时候可以使用集合模块中的OrderedDict,它是一种有序的字典结构。
  

  

示例代码如下(Python版本为3.5.2):

        从进口OrderedDict集合      d={}   d[‘汤姆’]=' A '   d(‘杰克’)=' B '   d(“狮子座”)=' C '   d(“亚历克斯”)=' d '   打印(“无序字典(dict):”)   k、v d.items ():   打印(k、v)      d1=OrderedDict ()   d1[‘汤姆’]=' A '   d1(‘杰克’)=' B '   d1(“狮子座”)=' C '   d1(“亚历克斯”)=' D '   打印(' \ n有序字典(OrderedDict): ')   k、v d1.items ():   打印(k、v)      

输出的结果为:

  
  

无序字典(dict):
  狮子座C
  杰克B
  汤姆一个
  亚历克斯·D

  

有序字典(OrderedDict):
  汤姆一个
  杰克B
  狮子座C
  亚历克斯·D
  

     

<强>默认字典collections.defaultdict
  

  

collections.defaultdict是Python内建dict类的一个子类,第一个参数为default_factory属性提供初始值,默认为没有。它覆盖一个方法并添加一个可写实例变量。它的其他功能与dict相同,但会为一个不存在的键提供默认值,从而避免KeyError异常。
  我们以统计列表中单词的词频为例,展示collections.defaultdict的优势。
  

  

一般情形下,我们统计列表中的单词词频代码为:

Python详解字典小结