蓝桥Python组标准库itertools

itertools 模块
提供了一系列的迭代器工具,这些工具可以创建复杂的迭代器

一.无限迭代器

count(start=0, step=1) - 返回一个无限迭代器,从 start 开始,每次递增 step。
cycle(iterable) - 对传入的可迭代对象进行无限循环。
repeat(object, times=None) - 无限重复对象,除非指定了 times。

二.有限迭代器

  • itertools.accumulate(iterable[, func, *, initial=None])

默认使用加法

from itertools import accumulate

# 默认情况下,accumulate 会累加数字
numbers = (1, 2, 3, 4, 5)
result = list(accumulate(numbers))
print(result)  # 输出: [1, 3, 6, 10, 15]

使用自定义函数

from itertools import accumulate

# 使用自定义的乘法函数进行累积
numbers = (1, 2, 3, 4, 5)
result = list(accumulate(numbers, lambda x, y: x * y))
print(result)  # 输出: [1, 2, 6, 24, 120]

使用初始值

from itertools import accumulate

# 使用初始值
numbers = (1, 2, 3, 4, 5)
initial_value = 10
result = list(accumulate(numbers, initial=initial_value))
print(result)  # 输出: [10, 11, 13, 16, 20, 25]
  • chain(iterables) - 将多个可迭代对象串联成一个迭代器。
from itertools import chain

arr = list(chain('123', '456'))
print(arr) # 输出:['1', '2', '3', '4', '5', '6']

三.排列组合迭代器

  1. itertools.product 函数是 Python itertools模块中的一个非常有用的工具,它用于生成可迭代对象的笛卡尔积。
from itertools import product

arr = list(product([1,3],[4,6]))
print(arr)
brr = list(product("ad", repeat = 2))
print(brr)
crr = list(product("12","34"))
print(crr)

输出

[(1, 4), (1, 6), (3, 4), (3, 6)]
[('a', 'a'), ('a', 'd'), ('d', 'a'), ('d', 'd')]
[('1', '3'), ('1', '4'), ('2', '3'), ('2', '4')]
  1. permutations 函数返回输入可迭代对象的所有可能排列。排列是序列中元素的所有可能顺序。
from itertools import permutations

print(list(permutations('ABC',2)))
print(list(permutations([1,2,3])))

输出

[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]
  1. combinations 函数返回输入可迭代对象的所有可能组合。组合是序列中元素的子集,不考虑元素的顺序。
from itertools import permutations

print(list(combinations('ABCD', 2)))
print(list(combinations([1,2,3,4], 3)))

输出

[('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')]
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2023蓝桥Python B是一个Python编程竞赛别,属于蓝桥杯全国软件和信息技术专业人才大赛。蓝桥杯是中国最有影响力的IT竞赛之一,旨在发现和培养软件和信息技术领域的优秀人才。2023年将举办蓝桥杯竞赛中的Python B,意味着这个别将使用Python编程语言进行竞赛。 Python作为一种简单易学的编程语言,拥有较强的可读性和灵活性。它在数据分析、人工智能、Web开发等领域得到广泛应用。Python B的参赛选手有机会展示自己在Python编程方面的技术实力和创造力。 对于2023蓝桥Python B的参赛选手来说,要想在竞赛中取得好成绩,首先需要扎实的Python编程基础。熟悉Python的基本语法、掌握常用的库和模块,是竞赛成功的基石。 其次,参赛选手还需要具备良好的逻辑思维和问题解决能力。竞赛中可能遇到各种难题,需要分析问题、设计算法,并用Python代码实现解决方案。 此外,团队合作也是成功的关键。选手需要与队友密切合作,共同解决问题、讨论和优化代码。团队的相互支持和协作能够提高整个团队的竞赛水平和效率。 总的来说,2023蓝桥Python B是一个为期一年的Python编程竞赛,提供了一个展示个人实力和创意的舞台。参赛选手需要具备扎实的编程基础、良好的逻辑思维和问题解决能力,并与队友紧密合作,共同实现竞赛目标。参与这个竞赛可以提高个人的编程水平、锻炼团队合作能力,并有机会获得诸如荣誉证书、奖金等奖励。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值