Python基础: dict and set

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))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好好学技术oH

你的鼓励是一起学习的动力何阶梯

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值