文章目录

  • sys
  • collections
  • os
  • functools
  • itertools
  • 无限迭代器
    • count()
    • cycle()
    • repeat()
  • 有限迭代器
    • chain()
    • groupby()
    • accumulate()
  • 组合迭代器
    • product()
    • repeat()
    • permutations()
    • combinations()
    • combinations_with_replacement()
sys
collections

这个模块实现专门的容器数据类型提供替代Python的通用内置容器 dict,list, set,和tuple。

os
functools

functools模块提供了高阶函数功能:函数可以作为或者返回其他函数。通常, 任何可调用对象可以被视为在本模块的函数。

itertools

Python的内置模块itertools就是用来操作迭代器的一个模块,包含的函数都是能够创建迭代器来用于for循环或者next()。其中函数主要可以分为三类,分别是无限迭代器,有限迭代器,组合迭代器。

无限迭代器
count()

count([start=0, step=1]) 接收两个可选整形参数,第一个指定了迭代开始的值,第二个指定了迭代的步长。此外,start参数默认为0,step参数默认为1,可以根据需要来把这两个指定为其它值,或者使用默认参数。

import itertools
for i in itertools.count(10,2):print(i)if i>20: break[Running] python -u "e:\pythonee\code\test.py"
10
12
14
16
18
20
22
cycle()

cycle(iterable) 是用一个可迭代对象中的元素来创建一个迭代器,并且复制自己的值,一直无限的重复下去。

import itertools
for i in itertools.cycle("abcd"):print(i)     # 具有无限的输出,可以按ctrl+c来停止。[Running] python -u "e:\pythonee\code\test.py"
a
b
c
d
a
b
c
d
a
b
repeat()

repeat(elem [,n])是将一个元素重复n遍或者无穷多遍,并返回一个迭代器。

import itertools
for i in itertools.repeat("abcd",5):print(i)[Running] python -u "e:\pythonee\code\test.py"
abcd
abcd
abcd
abcd
abcd
有限迭代器
chain()

import itertools for i in itertools.product(‘ab’,‘cd’,repeat = 2): #左右两边进行排列组合,用2次,生成元组内元素数为 序列数*重复次数 print(i)

import itertools
for i in itertools.chain('good','bye'):print(i)[Running] python -u "e:\pythonee\code\test.py"
g
o
o
d
b
y
e
groupby()

groupby(iterable,key=None) 可以把相邻元素按照 key 函数分组,并返回相应的 key 和 groupby,如果key函数为 None,则只有相同的元素才能放在一组。

import itertools
for key, group in itertools.groupby('AaaBBbcCAAa', lambda c: c.upper()):print(list(group))[Running] python -u "e:\pythonee\code\test.py"
['A', 'a', 'a']
['B', 'B', 'b']
['c', 'C']
['A', 'A', 'a']
accumulate()

accumulate(iterable [,func]) 可以计算出一个迭代器,这个迭代器是由特定的二元函数的累计结果生成的,如果不指定的话,默认函数为求和函数。

import itertools
for i in itertools.accumulate([0,1,0,1,1,2,3,5]):print(i)[Running] python -u "e:\pythonee\code\test.py"
0
1
1
2
3
5
8
13

如果我们指定这个累计函数,则还能有不同的用法,例如,指定一个最大值函数,或者自己定义的函数。

import itertools
for i in itertools.accumulate([2,1,4,3,5],max):print(i)[Running] python -u "e:\pythonee\code\test.py"
2
2
4
4
5
组合迭代器
product()

product(*iterables, repeat=1) 得到的是可迭代对象的笛卡儿积,*iterables参数表示需要多个可迭代对象。

import itertools
for i in itertools.product([1,2,3],[4,5,6]):print(i)[Running] python -u "e:\pythonee\code\test.py"
(1, 4)
(1, 5)
(1, 6)
(2, 4)
(2, 5)
(2, 6)
(3, 4)
(3, 5)
(3, 6)
repeat()

repeat 参数则表示这些可迭代序列重复的次数。

import itertools
for i in itertools.product('ab','cd',repeat = 2):#左右两边进行排列组合,用2次,生成元组内元素数为 序列数*重复次数print(i)[Running] python -u "e:\pythonee\code\test.py"
('a', 'c', 'a', 'c')
('a', 'c', 'a', 'd')
('a', 'c', 'b', 'c')
('a', 'c', 'b', 'd')
('a', 'd', 'a', 'c')
('a', 'd', 'a', 'd')
('a', 'd', 'b', 'c')
('a', 'd', 'b', 'd')
('b', 'c', 'a', 'c')
('b', 'c', 'a', 'd')
('b', 'c', 'b', 'c')
('b', 'c', 'b', 'd')
('b', 'd', 'a', 'c')
('b', 'd', 'a', 'd')
('b', 'd', 'b', 'c')
('b', 'd', 'b', 'd')
permutations()

permutations(iterable,r=None)返回的是可迭代元素中的一个排列组合,并且是按顺序返回的,且不包含重复的结果。

import itertools
for i in itertools.permutations('abc'):print(i)[Running] python -u "e:\pythonee\code\test.py"
('a', 'b', 'c')
('a', 'c', 'b')
('b', 'a', 'c')
('b', 'c', 'a')
('c', 'a', 'b')
('c', 'b', 'a')
import itertools
for i in itertools.permutations('abc',2):print(i)[Running] python -u "e:\pythonee\code\test.py"
('a', 'b')
('a', 'c')
('b', 'a')
('b', 'c')
('c', 'a')
('c', 'b')
combinations()

combinations(iterable,r) 返回的是可迭代对象所有的长度为 r 的子序列,注意这与前一个函数 permutation 不同,permutation 返回的是排列,而 combinations 返回的是组合。

import itertools
for i in itertools.combinations('1234',2):print(i)[Running] python -u "e:\pythonee\code\test.py"
('1', '2')
('1', '3')
('1', '4')
('2', '3')
('2', '4')
('3', '4')
combinations_with_replacement()

combinations_with_replacement(iterable, r) 返回一个可与自身重复的元素组合,用法类似于 combinations 。

import itertools
for i in itertools.combinations_with_replacement('1234',2):print(i)[Running] python -u "e:\pythonee\code\test.py"
('1', '1')
('1', '2')
('1', '3')
('1', '4')
('2', '2')
('2', '3')
('2', '4')
('3', '3')
('3', '4')
('4', '4')

python常用函数库相关推荐

  1. python常用函数库-Python常用库大全及简要说明

    环境管理 管理 Python 版本和环境的工具 p:非常简单的交互式 python 版本管理工具.官网 pyenv:简单的 Python 版本管理工具.官网 Vex:可以在虚拟环境中执行命令.官网 v ...

  2. python 常用函数库

    数学函数库 简单的加减乘除可直接使用,但当要使用开方取绝对值的操作时,需要引入python的数学函数库 import math import math a = 5 print(math.sqrt(a) ...

  3. python的第三方库是干什么用的-quot;别人造好的轮子”,python常用第三方库——python自动办公7...

    下载好向圈APP可以快速联系圈友 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 前记:这是分享和记录我个人自动化办公技能的一系列文章,意在让的小伙伴们看后能够有所帮助和长大.我们都不是专业的 ...

  4. 【Python常用函数合集】clip函数、range函数等

    你应该听说过,应用Python,可以让你处理一天的重复工作量,缩短到几分钟甚至更短.从此解放上班时间,研究更多更有效率的工作方法.进一步提升工作效率,让工作更出彩.这不是广告,这是实锤图片.    本 ...

  5. Python常用第三方库

    Python常用第三方库 一. 文件读写 二.网络抓取和解析 三.数据库连接 四.数据清洗转换 五.数据计算和统计分析 六.自然语言处理和文本挖掘 七.图像和视频处理 八.音频处理 九.数据挖掘/机器 ...

  6. Python常用标准库之正则表达式

    Python常用标准库之正则表达式 1.re模块常用函数 1.1 匹配对象以及group()和groups()方法 1.2 match()与search():匹配单个目标 1.3 findall(): ...

  7. Python常用第三方库——简介及下载地址

    Python常用第三方库 可以在  The Python Package Index (PyPI)  软件库(官网主页:https://pypi.org/  )查询.下载 和 发布 Python包或库 ...

  8. python常用函数有哪些

    Python常用函数: 1. print()函数:打印字符串 2. raw_input()函数:从用户键盘捕获字符 3. len()函数:计算字符长度 4. format(12.3654,'6.2f' ...

  9. 机器学习之Python常用函数及模块整理

    机器学习之Python常用函数及模块整理 1. map函数 2. apply函数 3. applymap函数 4. groupby函数 5. agg函数 6. lambda函数 7. rank函数 8 ...

最新文章

  1. jquery-ajax请求:超时设置,增加 loading 提升体验
  2. windows下cacti的快速安装
  3. Kubectl get pods 一直处于 Status:containerCreating
  4. Linux修改hostname(临时或者永久)
  5. 机器学习入门资源不完全汇总
  6. python文字游戏 生成数字菜单_pygame游戏之旅 游戏中添加显示文字
  7. mysql 并行复制原理_MySQL 5.7 并行复制实现原理与调优
  8. bzoj 2553 [BeiJing2011]禁忌——AC自动机+概率DP+矩阵
  9. YT88 USB 加密狗 使用方法(一)加壳
  10. 妈耶,摆脱机器音,二次宅的歌姬女友彻底活了!
  11. My 10 favorite APPs
  12. 十大项目管理知识-进度管理
  13. ACCV 2020 开幕,最佳论文出炉!附所有论文下载
  14. 华为AP 6050DN配置成家庭路由器
  15. 《认文识字•简述》【小结】
  16. 关于KEIL5最新版没有ATMEL(含89C51芯片)的情况
  17. 【综合笔试题】难度 3/5,挺有意思的一道题(既可图论,也可贪心)
  18. 软件测试流程规范简介(不同公司流程规范不一样,仅供参考)
  19. <塞梅普雷斯 如是说> 第二部 0.序
  20. Linux Tomcat JSP 布署详细教程

热门文章

  1. 电视家海信html安装不了,电视猫安装到电视机 海信电视怎么安装电视家软件?详细操作步骤分享...
  2. OpenCV-python 用鼠标在图片上标记位置并返回坐标
  3. 通讯常识笔记:计算机通讯技术之开放式系统互联
  4. linux下网口监控软件_linux下监控软件
  5. Microsoft Office InfoPath 2003 简介
  6. ubuntu安装vasp_vasp编译简略指南(自用)
  7. 廊坊汽车迁入北京流程纪实
  8. 第021篇:易康(eCognition)中用点矢量文件制作样本验证分类精度的操作方法
  9. DockerHub使用
  10. 编程实现古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?