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)
Python3基础12(collections、struct、itertools、chardet等的使用)的更多相关文章
- 十二. Python基础(12)--生成器
十二. Python基础(12)--生成器 1 ● 可迭代对象(iterable) An object capable of returning its members one at a time. ...
- [.net 面向对象编程基础] (12) 面向对象三大特性——继承
[.net 面向对象编程基础] (12) 面向对象三大特性——继承 上节我们说了面向对象的三大特性之一的封装,解决了将对同一对象所能操作的所有信息放在一起,实现统一对外调用,实现了同一对象的复用,降低 ...
- python3基础视频教程
随着目前Python行业的薪资水平越来越高,很多人想加入该行业拿高薪.有没有想通过视频教程入门的同学们?这份Python教程全集等你来学习啦! python3基础视频教程:http://pan.bai ...
- Python3基础-特别函数(map filter partial reduces sorted)实例学习
1. 装饰器 关于Python装饰器的讲解,网上一搜有很多资料,有些资料讲的很详细.因此,我不再详述,我会给出一些连接,帮助理解. 探究functools模块wraps装饰器的用途 案例1 impor ...
- 2. Python3 基础入门
Python3 基础入门 编码 在python3中,默认情况下以UTF-8编码.所有字符串都是 unicode 字符串,当然也可以指定不同编码.体验过2.x版本的编码问题,才知道什么叫难受. # -* ...
- 『Python基础-12』各种推导式(列表推导式、字典推导式、集合推导式)
# 『Python基础-12』各种推导式(列表推导式.字典推导式.集合推导式) 推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的 ...
- python基础===Python 迭代器模块 itertools 简介
本文转自:http://python.jobbole.com/85321/ Python提供了一个非常棒的模块用于创建自定义的迭代器,这个模块就是 itertools.itertools 提供的工具相 ...
- python002 Python3 基础语法
python002 Python3 基础语法 编码默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 当然你也可以为源码文件指定不同的编码: # -* ...
- Python3基础(十二) 学习总结·附PDF
Python是一门强大的解释型.面向对象的高级程序设计语言,它优雅.简单.可移植.易扩展,可用于桌面应用.系统编程.数据库编程.网络编程.web开发.图像处理.人工智能.数学应用.文本处理等等. 在学 ...
随机推荐
- 7.21实习培训日志-JDBC JSP Servlet
JDBC JSP Servlet 总结 今天早上的考试主要考Java的网络,HttpClient的get,post方法,Socket的文件传输和Xml和Json文件的解析,对于HttpCLient很简 ...
- 微信小程序自学第四课:数据绑定
WXML 中的动态数据均来自对应 Page 的 data. 一.简单绑定 数据绑定使用 Mustache 语法(双大括号)将变量包起来,可以作用于: 1.内容 <view> {{ mess ...
- 输入类型<input type="number"> / input标签的输入限制
输入限制 属性 描述 disabled 规定输入字段应该被禁用. max 规定输入字段的最大值. maxlength 规定输入字段的最大字符数. min 规定输入字段的最小值. pattern 规定通 ...
- vue里的tab标签
<template> <div class="Test2"> <div class="tabs_wrap" v-model=&qu ...
- git 修改远程仓库源
自己已经写好了一个项目,想上传到 github github 创建新项目 新建 README.md , LICENSE 本地项目添加 github 远程仓库源 不是git项目 git remote a ...
- C#之数据类型转换
前言 在C#中学习中,像在VB学习的时候一样,我们会接触到很多种数据类型,但是VB中在用数据类型的时候,我们会考虑这个数据要求多大的内存,或者说有时候为了满足很少的大内存事件,而狠心分配给它较大 ...
- [Xcode 实际操作]四、常用控件-(7)UIStepper控件的使用
目录:[Swift]Xcode实际操作 本文将演示步进控件的基本用法.步进控件常用于小范围数值的调整. 在项目导航区,打开视图控制器的代码文件[ViewController.swift] import ...
- java程序生成二维码
在物联网的时代,二维码是个很重要的东西了,现在无论什么东西都要搞个二维码标志,唯恐落伍,就差人没有用二维码识别了.也许有一天生分证或者户口本都会用二维码识别了.今天心血来潮,看见别人都为自己的博客添加 ...
- [Leetcode]005. Longest Palindromic Substring
public String longestPalindrome(String s) { int start = 0, end = 0; for (int i = 0; i < s.length( ...
- ros indigo install
http://wiki.ros.org/cn/indigo/Installation/Ubuntu