python3.12_Python3基础12(collections、struct、itertools、chardet等的使用)

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值