Python3基础12(collections、struct、itertools、chardet等的使用)
2024-08-30 00:18:31
import struct
import base64
import itertools
import chardet
from collections import namedtuple,defaultdict,OrderedDict,Counter
# namedtuple 新建1个元组,并设置元素的属性和个数
# namedtuple('名称','列表')
# 例如 namedtuple('Circle', ['x', 'y', 'r']) # dqueue 高效插入和删除操作的双向列表,适合于队列和栈 # defaultdict 用于键不存在时,返回一个默认值,用于字典中
# 创建默认值的字典
# defaultdict(lambda :'n/a') # ChainMap # OrderedDict 使字典有序,用 OrderedDict 按照插入的顺序排列
# 为FIFO(先进先出)的dict,当字典满时,需要再插入数据,会删除最早插入的数据 # Counter 统计字符中各字符的个数
c=Counter()
for i in 'this is a stirng':
c[i]=c[i]+1 print(c)
#base64 用64个字符,表示二进制数据的一种方式,用于处理二进制数据与字符串之间进行转换,可被认为是进行简单加密和解密
# 每3个字节一组 共3*8=24bit 每组6bit
# 二进制数据不足3的倍数,则在\x00后加上不定数的=,加几个=,则表示补了几个字节
# 适用于不重要的信息进行加密,一般用户证书 cookie 网页 及在url传输少量二进制数据 # struct 用于处理bytes与其他二进制数据之间的转换 # 任意类型->bytest
# > 网络序 I 无符号整数
result=struct.pack(">I",24)
print(result) # bytes->任意类型
# 后面的bytes依次变为I H 4字节无符号整数 I 2字节无符号整数
result=struct.unpack(">IH",b'\xf0\xf0\xf0\xf0\x80\x80')
print(result) # itertools 用于操作迭代对象 #把一个序列无线重复下去
# itertools.cycle() #把一个元素无线重复下去,除非指定次数
# itertools.repeat() # 可通过条件判断取出一个有限序列
c=itertools.count(1,5)
r=itertools.takewhile(lambda x:x<=10,c)
print(list(r)) # 可以把一组迭代对象串联起来,形成一个更大的迭代器
itertools.chain() # 把迭代器中相邻的重复元素挑出来放在一起,返回值做为组的key
for key,group in itertools.groupby("testing",lambda t:t.upper()):
print(key,list(group)) # xml 用于处理xml格式文件及格式数据
# sax:流模式 边解析边读,占用内存小,解析快,需要自定义处理事件
# dom:树模式 解析慢 占用内存大,但可以遍历任意节点 # chardet 用于检测对象使用了哪类编码
# result=chardet.detect(b"test")
data="test".encode('utf-8')
result=chardet.detect(data)
print(result)
最新文章
- 在WPF按钮删除默认的鼠标悬停效果
- 常用Jquery插件整理
- python异常处理[转]
- 读书笔记_Effective_C++_条款四十一:了解隐式接口和编译期多态
- 2015GitWebRTC编译实录8
- jquery-qrcode在线生成二维码
- Sublime Text3安装SublimeREPL插件以及快捷键设置
- 将单词首字母大写的JS脚本工具
- PBO
- Jmeter 参数化请求实例
- 算法训练 2的次幂表示(蓝桥杯C++写法)
- Django基础四(model和数据库)
- C# 数组Array
- 打开visual studio 2010报错:未能正确加载“VSTS for Database Professionals Sql Server Data-tier Application”包
- 源码安装 odoo12 -- 问题记录
- 基于Python的SQLAlchemy的操作
- TurboCAD Pro for Mac(二维绘图和三维建模工具)破解版安装
- org.springframework.dao.InvalidDataAccessApiUsageException报错
- UI5-学习篇-13-Eclipse 开发UI5应用
- 为sharepoint的内部页面添加后台代码
热门文章
- [转]关于CLOB存储Base64图片编码,直接在前台显示解决方案
- Instruments10 分析某个类中方法的执行时间
- 使用 jquery.webcam 进行asp.net 拍照
- Ansible Playbooks高级使用
- Codeforces - 102222C - Caesar Cipher
- Codeforces Round #558 (Div. 2)C(计算几何,排列组合,模拟)
- Unity---遇到的一些坑和解决方案
- 快速搭建angular7 前端开发环境
- thinkphp5更新时验证数据
- Jmeter常用线程组设置及场景运行时间计算