python构造字典类型字典

Posted 菜比之路

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python构造字典类型字典相关的知识,希望对你有一定的参考价值。

字典类型字典:就是包含字典类型的字典,如{\'sss\': {\'ss\': \'dddsdsdsd\'}}

构造方式:

a={}
b="sss"
a[b]={}
a[b][\'ss\'] = "dddsdsdsd"
print  a
》》》{\'sss\': {\'ss\': \'dddsdsdsd\'}}

 

 

应用:

import  sys,os,re
oui_dict={}  ###构造字典
tmp_fp = open("C:\\\\Users\\\\Administrator\\\\Desktop\\\\mac.py-master\\\\mac.py-master\\\\src\\\\macpy\\\\oui.txt", \'rb\')
while True:
    current_line=tmp_fp.readline() ###读取一行进行如下判断
    if current_line:
        m = re.match(r"^[0-9A-Z]{6}", current_line)  ###对所读到的行进行正则匹配
        if m:  ###若匹配成功,则进入,否则接着进入while循环往下读
            tmp = current_line.split(\'\\t\\t\')
            mac_24 = tmp[0].split(\'    \')[0]
            if oui_dict.get(mac_24, None):###get函数不返回none。get获取oui_dict中mac24属性值,所没有返回none
                oui_dict[mac_24][\'com\'] += \' / \' + tmp[1].strip()##往字典类型字典添加数据
                ####正则匹配成功再往下读3行
                oui_dict[mac_24][\'addr\'] += \' / \' + tmp_fp.readline().strip()
                oui_dict[mac_24][\'re\'] += \' / \' + tmp_fp.readline().strip()
                oui_dict[mac_24][\'co\'] += \' / \' + tmp_fp.readline().strip()
            else:####get函数返回none
                oui_dict[mac_24] = {}
                oui_dict[mac_24][\'com\'] = tmp[1].strip()##往字典类型字典添加数据
                 ####正则匹配成功再往下读3行
                oui_dict[mac_24][\'addr\'] = tmp_fp.readline().strip()
                oui_dict[mac_24][\'re\'] = tmp_fp.readline().strip()
                oui_dict[mac_24][\'co\'] = tmp_fp.readline().strip()
    else:###文档读到再无数据跳出while循环
        break

oui.txt文档如下: 

以上是关于python构造字典类型字典的主要内容,如果未能解决你的问题,请参考以下文章

Python代码阅读(第19篇):合并多个字典

Python代码阅读(第26篇):将列表映射成字典

Python代码阅读(第40篇):通过两个列表生成字典

好好学python · 字典

pythoning —— 4数据类型(字典)

Python代码阅读(第38篇):根据谓词函数和属性字符串构造判断函数