00#python多嵌套字典的调用和多层循环

00#python多嵌套字典的调用和多层循环
一python的嵌套函数

#-- coding:utf-8 --
import copy #用于深度拷贝,适用于复杂的数据结构
#复杂的数据结构看不懂,一定要在纸上画图,画出来就一目了然了

class native_bayes:

def __init__(self, character_vec_, class_vec_):


    """
    # 缩进必须正确,不然会报错
    构造函数,传入的参数请看最底下的函数调用
    character_vec_:[("character_A",["A1","A2","A3"]), ("character_B",["B1","B2","B3"])] 是一个嵌套数据结构,最外层是一个列表[],内层是元组(),元组里还有列表[]
    class_vec_:["class_X", "class_Y"]
    """
	
	
    character_condition_per = {} #创建一个数据结构,建议在纸上画出结构图
    #这是一个嵌套的三层字典,用于统计计数
	
    for character_name in character_vec_:#在列表内的元素是元组(),遍历列表的元素
        character_condition_per[character_name[0]] = {}#这一步跟想象的不同!!!!结果是元组中的第一个元素,而不是第一个元组
		
		
        for character_value in character_name[1]:
		
            character_condition_per[character_name[0]][character_value] = {
                'num':0, # 记录该类别下该特征值在训练样本中的数量
                'condition_per':0.0 # 记录该类别下各个特征值的条件概率
            }

。。。。。。。。。。。。。。。。。。。。。。

character_condition_per = {}
character_vec_=[(“character_A”,[“A1”,“A2”,“A3”]), (“character_B”,[“B1”,“B2”,“B3”])]
character_vec_
[(‘character_A’, [‘A1’, ‘A2’, ‘A3’]), (‘character_B’, [‘B1’, ‘B2’, ‘B3’])]

for character_name in character_vec_:
character_condition_per[character_name[0]] = {}
print (character_condition_per)

{‘character_A’: {}}
{‘character_A’: {}, ‘character_B’: {}}

character_condition_per = {}
character_vec_=[(“character_A”,[“A1”,“A2”,“A3”]), (“character_B”,[“B1”,“B2”,“B3”])]
for character_name in character_vec_:
character_condition_per[character_name[0]] = {}
for character_value in character_name[1]:
print (character_condition_per)
print (1)

{‘character_A’: {}}
1
{‘character_A’: {}}
1
{‘character_A’: {}}
1
{‘character_A’: {}, ‘character_B’: {}}
1
{‘character_A’: {}, ‘character_B’: {}}
1
{‘character_A’: {}, ‘character_B’: {}}
1

for character_name in character_vec_:
character_condition_per[character_name[0]] = {}
for character_value in character_name[1]:
character_condition_per[character_name[0]][character_value] = {
‘num’:0,
‘condition_per’:0.0
}
print (character_condition_per)

{‘character_A’: {‘A1’: {‘num’: 0, ‘condition_per’: 0.0}}, ‘character_B’: {}}
{‘character_A’: {‘A1’: {‘num’: 0, ‘condition_per’: 0.0}, ‘A2’: {‘num’: 0, ‘condition_per’: 0.0}}, ‘character_B’: {}}
{‘character_A’: {‘A1’: {‘num’: 0, ‘condition_per’: 0.0}, ‘A2’: {‘num’: 0, ‘condition_per’: 0.0}, ‘A3’: {‘num’: 0, ‘condition_per’: 0.0}}, ‘character_B’: {}}
{‘character_A’: {‘A1’: {‘num’: 0, ‘condition_per’: 0.0}, ‘A2’: {‘num’: 0, ‘condition_per’: 0.0}, ‘A3’: {‘num’: 0, ‘condition_per’: 0.0}}, ‘character_B’: {‘B1’: {‘num’: 0, ‘condition_per’: 0.0}}}
{‘character_A’: {‘A1’: {‘num’: 0, ‘condition_per’: 0.0}, ‘A2’: {‘num’: 0, ‘condition_per’: 0.0}, ‘A3’: {‘num’: 0, ‘condition_per’: 0.0}}, ‘character_B’: {‘B1’: {‘num’: 0, ‘condition_per’: 0.0}, ‘B2’: {‘num’: 0, ‘condition_per’: 0.0}}}
{‘character_A’: {‘A1’: {‘num’: 0, ‘condition_per’: 0.0}, ‘A2’: {‘num’: 0, ‘condition_per’: 0.0}, ‘A3’: {‘num’: 0, ‘condition_per’: 0.0}}, ‘character_B’: {‘B1’: {‘num’: 0, ‘condition_per’: 0.0}, ‘B2’: {‘num’: 0, ‘condition_per’: 0.0}, ‘B3’: {‘num’: 0, ‘condition_per’: 0.0}}}

character_condition_per[character_name[0]]
{‘B1’: {‘num’: 0, ‘condition_per’: 0.0}, ‘B2’: {‘num’: 0, ‘condition_per’: 0.0}, ‘B3’: {‘num’: 0, ‘condition_per’: 0.0}}

character_condition_per[character_name[0]][character_value]
{‘num’: 0, ‘condition_per’: 0.0}

character_condition_per[character_name[0]][‘B2’]
{‘num’: 0, ‘condition_per’: 0.0}

character_name[0]
‘character_B’

character_condition_per[‘character_B’][‘B2’]
{‘num’: 0, ‘condition_per’: 0.0}

character_condition_per
{‘character_A’: {‘A1’: {‘num’: 0, ‘condition_per’: 0.0}, ‘A2’: {‘num’: 0, ‘condition_per’: 0.0}, ‘A3’: {‘num’: 0, ‘condition_per’: 0.0}}, ‘character_B’: {‘B1’: {‘num’: 0, ‘condition_per’: 0.0}, ‘B2’: {‘num’: 0, ‘condition_per’: 0.0}, ‘B3’: {‘num’: 0, ‘condition_per’: 0.0}}}

character_condition_per[‘character_B’][‘B2’][‘num’]
0

character_condition_per[‘character_B’][‘B2’][‘condition_per’]
0.0

猜你喜欢

转载自blog.csdn.net/qq_39306047/article/details/91491246