python的itertools库
itertools常用的方法如下:
import itertools
1. 生成的列表累加,在生成新的列表x = itertools.accumulate(range(10))print(list(x))结果:[0, 1, 3, 6, 10, 15, 21, 28, 36, 45]
2. 连接多个列表或者迭代器x = itertools.chain(range(3), range(4), [3,2,1])print(list(x))结果:[0, 1, 2, 0, 1, 2, 3, 3, 2, 1]
3. 求列表或生成器中指定数目的元素不重复的所有组合x = itertools.combinations(range(4), 3)print(list(x))结果:[(0, 1, 2), (0, 1, 3), (0, 2, 3), (1, 2, 3)]
4. 允许重复元素的组合x = itertools.combinations_with_replacement( ABC , 2)print(list(x))结果:[( A , A ), ( A , B ), ( A , C ), ( B , B ), ( B , C ), ( C , C )]
5. 按照真值表筛选元素x = itertools.compress(range(5), (True, False, True, True, False))print(list(x))结果:[0, 2, 3]
6. 一个计数器,可以指定起始位置和步长x = itertools.count(start=20, step=-1) # X的类型为countprint(list(itertools.islice(x, 0, 10, 1)))结果:[20, 19, 18, 17, 16, 15, 14, 13, 12, 11]
7. 循环指定的列表和迭代器x = itertools.cycle( ABC )print(list(itertools.islice(x, 0, 10, 1)))结果:[ A , B , C , A , B , C , A , B , C , A ]
8. 按照真值函数丢弃掉列表和迭代器前面的元素x = itertools.dropwhile(lambda e: e < 5, range(10))print(list(x))结果:[5, 6, 7, 8, 9]
9. 保留对应真值为False的元素x = itertools.filterfalse(lambda e: e < 5, (1, 5, 3, 6, 9, 4))print(list(x))结果:[5, 6, 9]
10. 按照分组函数的值对元素进行分组x = itertools.groupby(range(10), lambda x: x < 5 or x > 8) for condition, numbers in x: print(condition, list(numbers)) True [0, 1, 2, 3, 4] False [5, 6, 7, 8] True [9]
11. 上文使用过的函数,对迭代器进行切片x = itertools.islice(range(10), 0, 9, 2)print(list(x))结果:[0, 2, 4, 6, 8]
12. 产生指定数目的元素的所有排列(顺序有关)x = itertools.permutations(range(4), 3)print(list(x))结果:[(0, 1, 2), (0, 1, 3), (0, 2, 1), (0, 2, 3), (0, 3, 1), (0, 3, 2), (1, 0, 2), (1, 0, 3), (1, 2, 0), (1, 2, 3), (1, 3, 0), (1, 3, 2), (2, 0, 1), (2, 0,3), (2, 1, 0), (2, 1, 3), (2, 3, 0), (2, 3, 1), (3, 0, 1), (3, 0, 2), (3, 1, 0), (3, 1, 2), (3, 2, 0), (3, 2, 1)]13. 产生多个列表和迭代器的(积)x = itertools.product( ABC , range(3))print(list(x))结果:[( A , 0), ( A , 1), ( A , 2), ( B , 0), ( B , 1), ( B , 2), ( C , 0), ( C , 1), ( C , 2)]14. 简单的生成一个拥有指定数目元素的迭代器x = itertools.repeat(0, 5)print(list(x))结果:[0, 0, 0, 0, 0]
15. 类似mapx = itertools.starmap(str.islower, aBCDefGhI )print(list(x))结果:[True, False, False, False, True, True, False, True, False]
16. 与dropwhile相反,保留元素直至真值函数值为假。x = itertools.takewhile(lambda e: e < 5, range(10))print(list(x))结果:[0, 1, 2, 3, 4]
17. 生成指定数目的迭代器x = itertools.tee(range(10), 2)for letters in x:print(list(letters))结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9][0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
18. 类似于zip,以较长的列表和迭代器的长度为准x = itertools.zip_longest(range(3), range(5))y = zip(range(3), range(5))>>> print(list(x))[(0, 0), (1, 1), (2, 2), (None, 3), (None, 4)]>>> print(list(y))[(0, 0), (1, 1), (2, 2)]
相关文章:
python的itertools库
itertools常用的方法如下: import itertools 1. 生成的列表累加,在生成新的列表x itertools.accumulate(range(10))print(list(x))结果:[0, 1, 3, 6, 10, 15, 21, 28, 36, 45] 2. 连接多个列表或者迭代器x itertools.chain(range(3), rang…...
STM32/GD32_分散加载
Q:如何将一个变量、某个源文件的函数在编译阶段就存储在用户指定的区域? KEIL环境:.map后缀文件、.sct后缀文件 IAR环境:.map后缀文件、.icf后缀文件 【map文件】 对固件里面的变量、函数、常量等元素的存储空间进行分配的说明…...
go clean
移除目标文件和缓存文件。 更多信息:https://golang.org/cmd/go/#hdr-Remove_object_files_and_cached_files. 只打印移除命令,而不会真正移除任何东西: go clean -n 删除编译缓存: go clean -cache 删除所有测试结果缓存&…...
BUUCTF [ACTF新生赛2020]swp 1
BUUCTF:https://buuoj.cn/challenges 题目描述: 得到的 flag 请包上 flag{} 提交。 密文: 下载附件,得到一个.tar文件。 解题思路: 1、使用WinRAR解压.tar文件,得到两个.zip文件。 解压wget.zip文件,得…...
【PTA题目】7-4 缩写期刊名 分数 10
7-4 缩写期刊名 分数 10 全屏浏览题目 切换布局 作者 黄龙军 单位 绍兴文理学院 科研工作者经常要向不同的期刊投稿。但不同期刊的参考文献的格式往往各不相同。有些期刊要求参考文献所发表的期刊名必须采用缩写形式,否则直接拒稿。现对于给定的期刊名ÿ…...
什么是 TLS/SSL 握手
TLS/SSL 握手是一个加密过程,每当客户端(如浏览器)与服务器建立连接时,都会在后台进行,此握手协议有助于客户端和服务器之间的安全连接,从而促进隐私、数据完整性和机密性。 TLS/SSL 握手何时发生 每当客…...
和鲸科技与国科环宇建立战略合作伙伴关系,以软硬件一体化解决方案促进科技创新
近日,在国科环宇土星云算力服务器产品发布会暨合作伙伴年度会上,和鲸科技与国科环宇正式完成战略伙伴签约仪式,宣布达成战略合作伙伴关系。未来,双方将深化合作,充分发挥在产品和市场方面的互补优势,为企事…...
[C++]六大默认成员函数详解
☃️个人主页:fighting小泽 🌸作者简介:目前正在学习C和Linux 🌼博客专栏:C入门 🏵️欢迎关注:评论👊🏻点赞👍🏻留言💪🏻 …...
组合(回溯算法)
77. 组合 - 力扣(LeetCode) 题目描述 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 样例输入 示例 1: 输入:n 4, k 2 输出: [[2,4],[3,4],[2,3],…...
力扣:1419. 数青蛙
题目: 代码: class Solution { public:int minNumberOfFrogs(string croakOfFrogs){string s "croak";int ns.size();//首先创建一个哈希表来标明每个元素出现的次数!vector<int>hash(n); //不用真的创建一个hash表用一个数…...
java_springboot企业人事考勤请假管理信息系统rsglxx+jsp
(1)熟练掌握Java开发的原理和方法 (2)熟练学习掌握SSM框架 (3)熟悉软件开发的流程 (4)了解中内外互联网中所主流的技术 (5)深层次的了解计算机学科领域的知识…...
java项目之木里风景文化管理平台(ssm+vue)
项目简介 木里风景文化管理平台实现了以下功能: 前台功能:用户进入系统可以实现首页,旅游公告,景区,景区商品,景区美食,旅游交通工具,红黑榜,个人中心,后台…...
源码安装mysql
使用源码安装mysql,这里选择的版本是mysql5.7.35 ,系统是Centos7.6 官网下载地址:https://downloads.mysql.com/archives/community/ 下载源码压缩包 [rootlocalhost ~]# cd /opt[rootlocalhost opt]# wget https://downloads.mysql.com/archives/get/…...
注解方式优雅的实现Redisson分布式锁
1.前言 随着微服务的快速推进,分布式架构也得到蓬勃的发展,那么如何保证多进程之间的并发则成为需要考虑的问题。因为服务是分布式部署模式,本地锁Reentrantlock和Synchnorized就无法使用了,当然很多同学脱口而出的基于Redis的se…...
服务器安装JDK17 版本显示JDK8
服务器之前安装的是JDK8,后面升级JDK17后,发现执行 java -vsrsion 显示的是此时我的环境变量已经换成了JAVA17的路径 输入: vim /etc/profile 解决办法: 1.更新自己环境变量 bash export JAVA_HOME/usr/local/jdk-17.0.7 …...
利用MCMC 获得泊松分布
写出概率流方程如下 if state 0: if np.random.random() < min([Lambda/2, 1]):state 1else:passelif state 1:if choose_prob_state[i] < 0.5:#选择 1 -> 0,此时的接受概率为min[2/Lambda, 1]if np.random.random() < min([2/Lambda, 1]…...
docker-compose脚本编写及常用命令
安装 linux DOCKER_CONFIG/usr/local/lib/docker/cli-plugins sudo mkdir -p $DOCKER_CONFIG/cli-plugins sudo curl -SL https://521github.com/docker/compose/releases/download/v2.6.1/docker-compose-linux-x86_64 -o $DOCKER_CONFIG/cli-plugins/docker-compose sudo c…...
编译企业微信会话内容存档PHP版SDK扩展
1.下载SDK 如果克隆不了,就页面下载 git clone https://github.com/pangdahua/php7-wxwork-finance-sdk2.下载企微官网C版本的最新sdk文件 下载地址:https://wwcdn.weixin.qq.com/node/wework/images/sdk_20201116.rar 下载以后将解压之后的文件夹里l…...
传统算法:使用 Pygame 实现K-Means 聚类算法
使用 Pygame 模块演示了 K-Means 聚类算法的基本原理。让我逐步解释它的实现: 初始化和基本设置 Pygame 初始化: 通过 pygame.init() 初始化 Pygame。 定义颜色和屏幕大小: 定义了一些颜色常量(WHITE, BLACK, RED, GREEN, BLUE)和屏幕的宽度和高度。 创建 Pygame 窗口:…...
WebUI工作流插件超越ComfyUI
在AI绘画领域,Stable Diffsion是最受欢迎的,因为它是开源软件。 开源有两大优势,一是免费,二是适合折腾。 大量的开发者、爱好者投入无尽的热情,来推动Stable Diffsion的快速发展。 在图形界面方面,WebU…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...
