第七章 Python系统模块 05-加密、集合模块

本文介绍了Python的hashlib模块,包括MD5和SHA系列的哈希加密方法,以及base64编码。同时,详细讲解了collections模块中的defaultdict、Counter、deque和namedtuple的用法,展示了它们在数据处理和结构化数据存储中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hashlib加密模块

import hashlib

# md5 16字节 128位  【16个单字节的符号】

# 1. 获取md5加密操作
md5 = hashlib.md5()
md5.update('1abcde56721A@1234'.encode('utf-8'))
# 获取加密摘要
print(md5.hexdigest())  # fcea920f7412b5da7be0cf42b8c93759

md5 = hashlib.md5()
md5.update('1234'.encode('utf-8'))
md5.update('567'.encode('utf-8'))
# 获取加密摘要
print(md5.hexdigest())  # fcea920f7412b5da7be0cf42b8c93759

# sha家族
sha1 = hashlib.sha1()
sha1.update('1234567890'.encode('utf-8'))
print(sha1.hexdigest())

sha256 = hashlib.sha256()
sha256.update('1234567890'.encode('utf-8'))
print(sha256.hexdigest())  # c775e7b757ede630cd0aa1113bd102661ab38829ca52a6422ab782862f268646

base64模块

# base64: 是目前网络上最常见的用于传输字节序列的编码方式

import base64

# 编码
b64_data = base64.b64encode('hell world'.encode('utf8'))
print(b64_data)

# 解码
print(base64.b64decode('aGVsbCB3b3JsZA==').decode('utf8'))

collections模块

from collections import defaultdict, Counter, deque, namedtuple

d0 = {'a': 97, 'b': 98}
# print(d0['c'])
# print(d0.get('c'))
# def get_value():
# 	return 0

# 给不存在的键设置默认值 可以使用defaultdict
d1 = defaultdict(lambda : 0)
d1.update(d0)
print(d1)
print(d1['c'])  # 0


# Counter 也是字典的一个子类
# 专门来做词频统计的  统计序列中每个元素出现的次数
s = 'aaabbbc333cccbdddaaaa333'
count_dict = Counter(s)
print(count_dict)
# Counter({'a': 7, '3': 6, 'b': 4, 'c': 4, 'd': 3})

print(count_dict.most_common(3))  # 提起排名前几的内容信息


# deque 队列
'''
队列分为单向和双向队列
	单向队列 规则是先进先出
deque 是双向队列
'''
queue = deque()
queue.append(10)
queue.append(12)
print(queue)
queue.appendleft(19)
queue.appendleft(21)
print(queue)

queue.pop()
print(queue)
queue.popleft()
print(queue)

# namedtuple 根据类型和属性名构造一个类  既有面向对象的特性 又有元组的特性  [元组的子类]
Point = namedtuple('Point', ('x', 'y'))
p = Point(18, 22)
print(p)  # Point(x=18, y=22)

# 取属性可以通过下标  也可以通过属性名
x = p[0]
print(x)

y = p.y
print(y)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值