ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python 的 itertools 模块

2021-11-13 11:30:11  阅读:218  来源: 互联网

标签:end Python range start itertools 模块 step subsequence


Python 当中的 itertools 模块的存在感一直不高,可能是大家真正用到的时候并不多。然而,最近它却成功引起了我的注意,它在时大放异彩,所以,不妨再来学一学,不求别的,只求在解决问题的过程当中至少能成功想到它一次。

itertools.combinations

求列表的 k 阶子列

import itertools
 
input_list = [1, 2, 4, 3, 5]
n = len(input_list)
k = 3
for i in range(1, n + 1):
    i_subsequence = itertools.combinations(input_list, i)
    if i == k:
        k_subsequence = list(i_subsequence)
        print(k_subsequence)
[(1, 2, 4), (1, 2, 3), (1, 2, 5), (1, 4, 3), (1, 4, 5), (1, 3, 5), (2, 4, 3), (2, 4, 5), (2, 3, 5), (4, 3, 5)]

 itertools.count

创建一个自定义步长的无限迭代器 —— 不主动 break 的话,停不下来。(这块感觉和 range 的功能差不多,只不过一般用 range 的时候都是生成一个有限的迭代器)

import itertools

start = 2
step = 3
end = 11
for i in itertools.count(start, step):
    print(i)
    if i == end:
        break
start = 2
step = 3
end = 11

for i in range(start, end + 1, step):
    print(i)
2
5
8
11

标签:end,Python,range,start,itertools,模块,step,subsequence
来源: https://blog.csdn.net/TomorrowAndTuture/article/details/121301670

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有