Python中itertools简介使用介绍

 更新时间:2022年12月28日 16:58:23   作者:A-L-Kun  
itertools是python内置的模块,使用简单且功能强大,itertools模块标准化了一个快速、高效利用内存的核心工具集,这些工具本身或组合都很有用,这篇文章主要介绍了Python中itertools详解,需要的朋友可以参考下

Python中itertools模块

一、 简介

itertools是python内置的模块,使用简单且功能强大

官方文档地址:https://docs.python.org/zh-cn/3/library/itertools.html

itertools模块标准化了一个快速、高效利用内存的核心工具集,这些工具本身或组合都很有用。它们一起形成了“迭代器代数”,这使得在纯Python中有可能创建简洁又高效的专用工具。

同时,itertools模块是python的内置库,我们可以直接使用,不需要进行额外的安装

这里讲解一些常用的函数,其余函数请到官方文档查看学习。

二、 使用介绍

1、 常用迭代器

1.1 chain

函数介绍:chain可以把一组迭代对象串联起来,形成一个更大的迭代器

语法:(class) chain(*iterables: Iterable[str])

import itertools
l1 = ["A", "B"]
l2 = ["C", "D"]
print(list(itertools.chain(l1, l2)))  # 将两个列表展开,当然,也可以用到一些可迭代对象里面去,比如说字符串等,返回一个可迭代对象

1.2 groupby

函数介绍:groupby 把迭代器中相邻的重复元素(key)挑出来放一起

语法:(class) groupby(iterable: Iterable[_T1@__new__], key: None = ...)

import itertools
for key, value in itertools.groupby("hello world! My name is Steve Anthony"):
    print(key, list(value))
    
"""结合key使用"""
import itertools
data = [
    (1, "Make", 93),
    (1, "Jack", 100), 
    (2, "Lucy", 90)
]
for key, value in itertools.groupby(data, key=lambda student: student[0]):
    print(key, list(value))

2、 无穷迭代器

2.1 count

函数作用:生成无界限序列,count(start=0, step=1) ,示例从100开始,步长为2,循环10,打印对应值;必须手动break,count()会一直循环。

语法:count(start: int, [step: _Step = ...])

import itertools

for i in itertools.count(10):
    print(i)=

2.2 cycle

函数作用:对可迭代容器里面的元素进行无限循环

语法:(class) cycle(__iterable: Iterable[int], /)

import itertools

for i in itertools.cycle(range(10)):
    print(i)

2.3 repeat

函数作用:对可迭代容器里面的元素重复times次

语法:repeat(object: range, times: int)

import itertools

for i in itertools.repeat(range(10), 2):
    print(i)

3、排列组合迭代器

3.1 product

函数作用:返回笛卡尔积,相当于嵌套的for循环,重复repeat次

语法:product(*iterables: Iterable, repeat: int = 1)

import itertools

for i in itertools.product([1, 2], ["A", "B", "C"]):
    print(i)

3.2 permutations

函数作用:生成一个长度为r的元组,元组中存放所有可能的排列,无重复元素

语法:(class) permutations(iterable: Iterable, r: int | None = ...)

import itertools

for i in itertools.permutations([1, 2, 3], 3):  # r的默认值为2
    print(i)

3.3 combinations

函数作用:生成一个长度为r的元组,有序,并且无重复元素

语法:(class) combinations(iterable: Iterable[_T@__new__], r: Literal[2])

import itertools
for i in itertools.combinations([1, 2, 3], 3):
    print(i)

3.4 combinations_with_replacement

函数作用:生成一个长度为r的元组,有序,有重复元素

import itertools
for i in itertools.combinations_with_replacement([1, 2, 3], 3):
    print(i)

这些是一些常用的迭代器函数,如果还想要更加深入的了解的话,可以去官方文档查看!

到此这篇关于Python中itertools简介使用介绍的文章就介绍到这了,更多相关Python中itertools内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现excel转sqlite的方法

    Python实现excel转sqlite的方法

    这篇文章主要介绍了Python实现excel转sqlite的方法,结合实例形式分析了Python基于第三方库xlrd读取Excel文件及写入sqlite的相关操作技巧,需要的朋友可以参考下
    2017-07-07
  • Python pandas DataFrame基础运算及空值填充详解

    Python pandas DataFrame基础运算及空值填充详解

    pandas除了可以drop含有空值的数据之外,当然也可以用来填充空值,下面这篇文章主要给大家介绍了关于Python pandas DataFrame基础运算及空值填充的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • python数据抓取分析的示例代码(python + mongodb)

    python数据抓取分析的示例代码(python + mongodb)

    本篇文章主要介绍了python数据抓取分析的示例代码(python + mongodb),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • python多次绘制条形图的方法

    python多次绘制条形图的方法

    这篇文章主要为大家详细介绍了python多次绘制条形图的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Python中的分支与循环结构解读

    Python中的分支与循环结构解读

    这篇文章主要介绍了Python中的分支与循环结构解读,在Python编程中,分支(Branch)和循环(Loop)是掌握的关键要素之一,它们允许您根据条件执行不同的代码块,以及重复执行特定任务,需要的朋友可以参考下
    2023-10-10
  • 在python中实现求输出1-3+5-7+9-......101的和

    在python中实现求输出1-3+5-7+9-......101的和

    这篇文章主要介绍了在python中实现求输出1-3+5-7+9-......101的和,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python Flask实现快速构建Web应用的方法详解

    Python Flask实现快速构建Web应用的方法详解

    Flask是一个轻量级的Web服务器网关接口(WSGI)web应用框架,本文将和大家一起详细探讨一下Python Flask Web服务,需要的小伙伴可以学习一下
    2023-06-06
  • python分块读取大数据,避免内存不足的方法

    python分块读取大数据,避免内存不足的方法

    今天小编就为大家分享一篇python分块读取大数据,避免内存不足的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python数据类型相互转换

    Python数据类型相互转换

    当涉及数据类型转换时,Python提供了多种内置函数来执行不同类型之间的转换,本文主要介绍了Python数据类型相互转换,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式

    Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式

    这篇文章主要介绍了Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05

最新评论