美文网首页
python itertools 模块处理复杂的迭代问题

python itertools 模块处理复杂的迭代问题

作者: g_s_007 | 来源:发表于2024-08-18 22:20 被阅读0次

当面对看起来很复杂的迭代问题时,可以先去看下itertools模块中是否已经有解决方案。本文举例出几个列表排列组合的迭代方法。

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time    : 2024/8/19 下午9:37
# @Author  : s
from itertools import permutations, combinations, combinations_with_replacement

# permutations:对一个元素集合中所有元素排列出所有可能情况, 默认是集合中所有元素,可传参
# combinations:对一个元素集合中所有组合情况,需要传参,且去重
# combinations_with_replacement:对一个元素集合中所有组合情况,需要传参,不去重

items = ['a', 'b', 'c']
for p in permutations(items):
    print(p)
# ('a', 'b', 'c')
# ('a', 'c', 'b')
# ('b', 'a', 'c')
# ('b', 'c', 'a')
# ('c', 'a', 'b')
# ('c', 'b', 'a')
for p in permutations(items, 2):
    print(p)
# ('a', 'b')
# ('a', 'c')
# ('b', 'a')
# ('b', 'c')
# ('c', 'a')
# ('c', 'b')
for c in combinations(items, 3):
    print(c)
# ('a', 'b', 'c')
for c in combinations(items, 2):
    print(c)
# ('a', 'b')
# ('a', 'c')
# ('b', 'c')
for c in combinations(items, 1):
    print(c)
# ('a',)
# ('b',)
# ('c',)
for c in combinations_with_replacement(items, 3):
    print(c)
# ('a', 'a', 'a')
# ('a', 'a', 'b')
# ('a', 'a', 'c')
# ('a', 'b', 'b')
# ('a', 'b', 'c')
# ('a', 'c', 'c')
# ('b', 'b', 'b')
# ('b', 'b', 'c')
# ('b', 'c', 'c')
# ('c', 'c', 'c')
for c in combinations_with_replacement(items, 2):
    print(c)
# ('a', 'a')
# ('a', 'b')
# ('a', 'c')
# ('b', 'b')
# ('b', 'c')
# ('c', 'c')

相关文章

  • Python: itertools模块任性迭代

    Python基础文章集合请移步。 itertools 模块 该模块包含了一系列处理可迭代对象(sequence-l...

  • itertools

    python 模块itertools 提供了非常有用的用于操作迭代对象的函数。 首先,我们看看itertools...

  • python itertools 模块讲解

    1、介绍 itertools 是python的迭代器模块,itertools提供的工具相当高效且节省内存。 使用这...

  • Day16内建模块itertools&urllib

    itertools Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数。首先,我们看看...

  • python itertools 模块讲解

    1、介绍itertools 是python的迭代器模块,itertools提供的工具相当高效且节省内存。使用这些工...

  • itertools

    Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数。 首先,我们看看itertools...

  • python学习-itertools模块

    Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数。 首先,我们看看itertools...

  • Python的itertools模块

    python的自建模块itertools提供了非常有用的用于操作迭代对象的函数。 首先,我们看看itertools...

  • Python itertools & contextli

    itertools itertools模块提供的全部是处理迭代功能的函数,它们的返回值不是list,而是Itera...

  • python itertools

    这货特别强大,所以我要深入了解一下:itertools 是python的迭代器模块,itertools提供的工具相...

网友评论

      本文标题:python itertools 模块处理复杂的迭代问题

      本文链接:https://www.haomeiwen.com/subject/vioukjtx.html