当前位置: 首页 > news >正文

python自学笔记3 控制结构

条件语句

循环语句

range函数

在这里插入图片描述

enumerate() 函数

可以将一个可迭代对象转换为一个由索引和元素组成的枚举对象。
在这里插入图片描述
索引的起始编号是0,也可以传入第二参数来指定其起始编号
在这里插入图片描述

zip函数

在这里插入图片描述
打包范围以两者最短的长度为准
在这里插入图片描述
以两者较长的长度为准的函数为itertools.zip_longest()

一个计算向量内积的应用
在这里插入图片描述

向量化

这是不用numpy处理矩阵的方法:
在这里插入图片描述
使用numpy后可以更加轻松的处理矩阵
在这里插入图片描述
同样也可以处理向量内积
在这里插入图片描述
可以用下面这个程序来比较两种方法处理矩阵的效率
在这里插入图片描述

列表生成

语法:[expression for item in iterable if condition]
下面是一个列表生成的例子:
在这里插入图片描述
还可以嵌套使用生成矩阵:
在这里插入图片描述
可以看到嵌套使用时,i和j的顺序反了过来。
应用
往线段上插点:
往线段上插点在python中有两种用法

  1. 确定范围,不确定间隔长度,从开始到结束均匀的插满
  2. 确定间隔长度,不确定范围,结束的位置不插上端点

函数实现:
在这里插入图片描述
矩阵转置:
在这里插入图片描述
将原矩阵的没一列提取出来,作为行插入到新矩阵中
另一种写法:
在这里插入图片描述
上述代码中,i和j代表新矩阵的行和列,对应的遍历数量是旧矩阵的列和行,所以i,j在原矩阵的位置和对应的range函数如上图所示。

计算矩阵逐项积:
在这里插入图片描述
笛卡尔集:
举个简单的例子,假设有两个集合: A = {1, 2} 和 B = {‘a’, ‘b’}。 它们的笛卡尔积为:{(1, ‘a’), (1, ‘b’), (2, ‘a’), (2, ‘b’)}。
在这里插入图片描述
一层列表实现笛卡尔集
在这里插入图片描述
两层列表实现笛卡尔集
在这里插入图片描述

迭代器

itertools 是 Python 标准库中的一个模块,提供了用于创建和操作迭代器的函数。
迭代器是一种用于遍历数据集合的对象,它能够逐个返回数据元素,而无需提前将整个数据集加载到内存中。

不放回排列

在这里插入图片描述
实现代码:
在这里插入图片描述
其中perm_idx遍历结果是一个元组,要用’'.join(perm_idx)连成一个字符串

itertools.permutations 函数还有一个可选参数,用于返回排列中元素的数量。
在这里插入图片描述
代码:
在这里插入图片描述

有放回的排列

在这里插入图片描述
代码:
在这里插入图片描述

有放回的组合

在这里插入图片描述
代码:
在这里插入图片描述

相关文章:

  • 用Python实现数据库数据自动化导出PDF报告:从MySQL到个性化文档的全流程实践
  • 在金融发展领域,嵌入式主板有什么优点?
  • goldenDB创建函数索引报错问题
  • 5G金融互联:迈向未来金融服务的极速与智能新时代
  • 每日c/c++题 备战蓝桥杯(洛谷P4715 【深基16.例1】淘汰赛 题解)
  • 安装NASM
  • 虚拟机的三个核心类加载器
  • 【VBA/word】批量替换字体大小
  • 深入解析分布式数据库TiDB:原理、优化与架构实践
  • 宏汇编以及浮点程序设计实验
  • 练习小项目5:基础计算器
  • 算法竞赛 Java 高精度 大数 小数 模版
  • 2025年即时通讯APP如何抵御DDoS攻击?全链路防御方案与实战解析
  • 5.19本日总结
  • Axure跨页面交互:利用IFrame和JS实现父子页面菜单联动
  • 如何快速更换电脑浏览器ip:教程与注意事项
  • 煤化工数字化关键一步:Modbus TCP转Profinet网关实现全流程通信兼容
  • 基于 Vue 和 Node.js 实现图片上传功能:从前端到后端的完整实践
  • Ubuntu服务器部署多语言项目(Node.js/Python)方式实践
  • 学习STC51单片机07(芯片为STC89C52RC)
  • 贵州茅台股东大会回应八大热点:确保茅台酒价格体系稳固,相信自我调节能力
  • IPO周报|本周2只新股申购,比亚迪、上汽“小伙伴”来了
  • 《缶翁的世界》首发:看吴昌硕王一亭等湖州籍书画家的影响
  • 南京艺术学院博导、雕塑家尹悟铭病逝,年仅45岁
  • 摄影师|伊莎贝尔·穆尼奥斯:沿着身体进行文化溯源
  • 澎湃与七猫联合启动百万奖金征文,赋能非虚构与现实题材创作