python常用模块&函数整理(一)
2018-02-06 14:15
627 查看
一、chardet模块:检查编码格式(外)
python2和python3的切换难免会碰到一些问题,有些方法比如re模块的findall()要求传入的是字符串格式的参数,urllib.request.urlope
n(url).read()返回的是bytes类型(这个是python3中才有的类型,所以很多python2中的方法都相应更改了)的,这样传参就会报以上错误。
python3中Unicode字符串是默认格式(就是str类型),ASCII编码的字符串(就是bytes类型,bytes类型是包含字节值,其实不算是字符串)
一劳永逸的解决方法就是根据你传进来的参数自动辨别编码格式,然后进行相应的解码:
二、Iterable模块:判断一个对象是否是Iterable对象(可迭代对象)(外)
1.凡是可作用于for循环的对象都是Iterable类型(迭代对象)
(1)一类是generator,包括生成器和带yield的generator的function均是
(2)一类是集合数据类型:list 、tuple 、dict 、set 、 str等
2.凡是可作用于next()函数,通过调用其不断返回下一个值的对象都是Iterator类型(迭代器):
(1)一类generator,包括生成器和带yield的generator的function均是
(2)一类是把list 、tuple 、dict 、set 、 str等Iterable使用iter()函数变成Iterator对象
注:生成器
(1)generator中保存的不是具体的元素,而是一种算法,一种无限大的数据流,通过next可以不断调用输出下面的值,直到输出StopIteration的错误
(2)生成器的创建方法有二:1是直接在列表生成式外边将[ ]改成();2.是在函数定义中包含yield关键字
三、enumerate函数:可以将一个list变成索引-元素对,从而可以在for循环中同时迭代索引和元素本身(内)
暂时更新这么多,日后有用到需更 。
python2和python3的切换难免会碰到一些问题,有些方法比如re模块的findall()要求传入的是字符串格式的参数,urllib.request.urlope
n(url).read()返回的是bytes类型(这个是python3中才有的类型,所以很多python2中的方法都相应更改了)的,这样传参就会报以上错误。
python3中Unicode字符串是默认格式(就是str类型),ASCII编码的字符串(就是bytes类型,bytes类型是包含字节值,其实不算是字符串)
一劳永逸的解决方法就是根据你传进来的参数自动辨别编码格式,然后进行相应的解码:
import chardet #需要导入这个模块,检测编码格式 encode_type = chardet.detect(html) html = html.decode(encode_type['encoding']) #进行相应解码,赋给原标识符(变量)
从str到bytes:调用方法encode(). 编码是把Unicode字符串以各种方式编码成为机器能读懂的ASCII字符串 从bytes到str:调用方法decode().
二、Iterable模块:判断一个对象是否是Iterable对象(可迭代对象)(外)
1.凡是可作用于for循环的对象都是Iterable类型(迭代对象)
(1)一类是generator,包括生成器和带yield的generator的function均是
(2)一类是集合数据类型:list 、tuple 、dict 、set 、 str等
2.凡是可作用于next()函数,通过调用其不断返回下一个值的对象都是Iterator类型(迭代器):
(1)一类generator,包括生成器和带yield的generator的function均是
(2)一类是把list 、tuple 、dict 、set 、 str等Iterable使用iter()函数变成Iterator对象
注:生成器
(1)generator中保存的不是具体的元素,而是一种算法,一种无限大的数据流,通过next可以不断调用输出下面的值,直到输出StopIteration的错误
(2)生成器的创建方法有二:1是直接在列表生成式外边将[ ]改成();2.是在函数定义中包含yield关键字
>>> from collections import Iterable >>> isinstance([],Iterable) True >>> isinstance({},Iterable) True >>> isinstance((x for x in range(10)),Iterable) True >>> isinstance(100,Iterable) False
三、enumerate函数:可以将一个list变成索引-元素对,从而可以在for循环中同时迭代索引和元素本身(内)
>>> for i,value in enumerate(['A','B','C']): print(i,value) 0 A 1 B 2 C
暂时更新这么多,日后有用到需更 。
相关文章推荐
- Python的机器学习库Sklearn中重要模块及其常用函数整理
- 【Python】Telnet模块常用函数及实例
- python ftp操作脚本&常用函数
- Python os模块常用函数详解
- os、os.path 模块中关于文件、目录常用的函数使用方法(python)
- 【python系列】Python常用数学函数整理
- python 常用函数及模块z
- 【Python3 笔记】常用函数 & 语法
- Python time模块详解(常用函数实例讲解,非常好)
- python 中 常用到的 numpy 函数 整理
- python抓取京东商品颜色&beautifulsoup的一些常用函数
- Python OS模块常用函数说明
- python ftp操作脚本&常用函数
- Python里的OS模块常用函数说明
- python os模块常用函数
- Python os模块常用函数详解
- 关于Python的time模块常用函数
- python常用模块整理(更新中)
- python中常用函数整理
- Python里的OS模块常用函数说明