字典(Dictionary)
字典也是Python语言中经常使用的一种数据类型。跟列表类似,字典是另外一种可存储任意类型的数据,并且字典储存的数据也是可以修改的。
不同于列表的是,字典每个基本元素都包括两个部分:键(key) 和 键对应的值(value)。
键和值之间用冒号(:)分割,每对元素之间用逗号(,)分割,整个字典的数据在大括号{}中,格式如下所示:
请点击输入图片描述
d = {"key1" : 1, "key2" : "hi", "key3":[]}
在字典中,键的内容是不可重复的。 键为不可变数据类型,值可以是任何数据类型。在这里,键只支持 字符串类型。
请点击输入图片描述
请点击输入图片描述
字典最大的优势就是能在海量数据下利用“键”快速查找出想要的值, 当有很多数据需要存储的时候,我们给每个值都打个标签,也就是“键”;想要调用这个值时,字典能够利用这个标签快速帮我们找到它。但是如果标签重复了,字典不知道哪个值才是对的,就会报错哦~
列表是根据排序来记录每项的值,但是字典是没有顺序的,所以同一字典,每次打印出的排序可能是不同的。“键”才是调用字典的关键元素。
字典是基础的数据类型,所以变量也可以被赋值为字典。
请点击输入图片描述
请点击输入图片描述
可以直接用大括号{},或者内置函数dict() 创建空字典:
Dict={}Dict=dict() #dict()是一个内置函数,可以用来快速创建空字典。#注意是小写开头的dict,创建变量名或者函数名要避免和内置函数dict重名哦~控制中的遍历积木,不仅可以遍历序列、列表,还可以遍历字典
请点击输入图片描述
import jsonimport codecs
import sys
reload(sys)
sys.setdefaultencoding('utf8')
def Format_data():
HY_Info = Search_HYInfo()
ChildNodes = Search_ChildNodes()
print '开始格式化数据'
HY_Nodes = []
for HY_id in ChildNodes.keys():
HY_Node = {}
HY_Node['id'] = HY_id
if HY_id in HY_Info.keys():
HY_Node['text'] = HY_Info[HY_id].decode('gbk')+'('+str(HY_id)+')'
else:
HY_Node['text'] = '--'
print HY_Node['text']
HY_Node['children'] =[]
for child_id in ChildNodes[HY_id]:
child_Node = {}
child_Node['id'] = child_id
if child_id in HY_Info.keys():
child_Node['text'] = HY_Info[child_id].decode('gbk') + '('+str(child_id) + ')'
else:
child_Node['text'] = '--'
if child_id in ChildNodes.keys():
child_Node['children'] = True
else:
child_Node['children'] = False
HY_Node['children'].append(child_Node)
HY_Nodes.append(HY_Node)
json_data = json.dumps(HY_Nodes,ensure_ascii=False,encoding="gb2312")
with codecs.open('./data/Parents_leves.json', "wb", "utf-8") as f:
f.write(json_data)
python中常用的数据类型是字典,字典的取值就是通过当前对象然后加上对于的key值就得到了对应的value;
x={"key1":"value1"}
python对字典的取值有以下三种:
返回指定键的值,如果值不在字典中返回默认值None。