Dict
字典是一系列由键(key)和值(value)配对组成的元素的集合.
相比较于列表和元组, 字典对于查找、添加、删除都可以很快的完成.
-
字典的定义
dict01 = {'name': 'bavduer', 'age': 18, 'gender': 'male'} dict02 = dict({'name': 'bavduer', 'age': 18, 'gender': 'male'}) dict03 = dict([('name', 'bavduer'), ('age', 18), ('gender', 'male')]) dict04 = dict(name='bavduer', age=18, gender='male') if dict01 == dict02 == dict03 == dict04: print("True") else: print("False")
-
字典的增删改查
print(dict01['name']) # 使用key键获取value值 print(dict01.get('name')) # 使用get()方法获取key键对应的value值 for keys in dict01.keys(): # 遍历列表的方式 print(keys, ":", dict01[keys]) for values in dict01.values(): print(values) dict01['dob'] = '1980-01-01' # 添加新的键值对 'dob': '1980-01-01' print(dict01) dict01.pop('gender') # 删除指定的键值对 print(dict01)
-
字典中的方法
dict05 = {}.fromkeys(['Tom', 'Jack', 'Tony']) # 快速生成一个字典 print(dict05) dict05.update([('Tom', 120), ('Jack', 135), ('Tony', 99)]) # 快速改变字典中的value print(dict05) print(dict05.items()) # 以列表的形式(注意这里的类型不是列表,但可以使用列表中的方法)打印出所有键值对 dict05.setdefault("Tony") # 如果字典中不存在所添加的key时,在字典中添加一个空值(None)的键值对 print(dict05)
Set
集合就是一系列没有值的键组成的集合, 其中元素(key)是唯一的, 且是无序的.
集合并不支持索引操作,因为集合本质上是一个哈希表,和列表不一样.
判断一个元素在不在字典或集合内,我们可以用value in dict/set
set01 = {1, 2, 3} set01.add(4) # 增加元素4到集合 print(set01) set01.remove(4) # 从集合中删除元素4 print(set01)
字典在 Python3.7+ 是有序的数据结构, 而集合是无序, 其内部的哈希表存储结构, 保证了其查找、插入、删除操作的高效性, 所以字典和集合通常运用在对元素的高效查找、去重等场景
Json格式序列化
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式, 这些特性使JSON成为理想的数据交换语言.易于人阅读和编写, 同时也易于机器解析和生成
-
JSON一般用于提升网络传输速率
-
JSON在python中分别由list和dict组成
-
JSON 用于字符串和python数据类型(int, str, list, dict…)间进行转换
-
json
-
dumps只把数据类型转换成字符串
-
loads只把字符串转换成数据类型
-
dump把数据类型转换成字符串并存储在文件中
-
load把文件打开从字符串转换成数据类型并输出
-
-
JSON是可以在不同语言之间交换数据的
-
JSON只能把常用的数据类型序列化(列表、字典、字符串、数字), 比如日期格式、类对象!josn就不行了
import json test_dict = {'symbol': [7600, {1: [['iPhone', 6300], ['Bike', 800], ['shirt', 300]]}]} print(test_dict) print(type(test_dict)) #dumps 将数据转换成字符串 json_str = json.dumps(test_dict) print(json_str) print(type(json_str))
import json params = { 'symbol': '123456', 'type': 'limit', 'price': 123.4, 'amount': 23 } #dumps将数据转换成字符串,并写入文件 with open('params.json', 'w') as fout: params_str = json.dump(params, fout) #load将数据转换成字典类型,并赋值到变量 with open('params.json', 'r') as fin: original_params = json.load(fin) print("Type of original_param: {}, json.load of original_params = {}".format(type(original_params), original_params))