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

python学习笔记 | 7.2、高级特性-迭代

一、迭代是什么(人话版)

迭代 =用 for 循环,一个一个把东西拿出来遍历一遍

  • list 能迭代
  • tuple 能迭代
  • 字符串能迭代
  • dict 能迭代
  • 数字不能迭代

二、这一节的重点用法

1. 遍历 list

for x in [1,2,3]: print(x)

2. 遍历 dict(默认遍历 key)

d = {'a':1, 'b':2} for key in d: print(key)

3. 遍历 dict 的 value

for v in d.values(): print(v)

4. 同时遍历 key + value

for k, v in d.items(): print(k, v)

5. 带下标遍历(enumerate)

for i, val in enumerate(['A','B']): print(i, val)

三、现在做这道练习题

题目:

用迭代查找 list 里的最小和最大值,返回一个 tuple

def findMinAndMax(L): return (None, None)

思路

  1. 如果 list 是空,直接返回(None, None)
  2. 先假设第一个元素是最小值、也是最大值
  3. 用 for 循环迭代每一个数
    • 比最小值还小 → 更新最小值
    • 比最大值还大 → 更新最大值
  4. 最后返回(min, max)

四、完整代码 + 执行流程讲解

def findMinAndMax(L): # 空列表 if len(L) == 0: return (None, None) # 初始化最小、最大为第一个元素 min_val = L[0] max_val = L[0] # 迭代每一个数 for num in L: if num < min_val: min_val = num if num > max_val: max_val = num return (min_val, max_val)

五、程序怎么走?以[7,1,3,9,5]举例

  1. 列表不为空

  2. min_val = 7max_val = 7

  3. 开始迭代:

  • num = 7

    7 不小于 7,不大于 7 → 不变

  • num = 1

    1 < 7 → min_val = 1

  • num = 3

    不比 min 小,不比 max 大 → 不变

  • num = 9

    9 > 7 → max_val = 9

  • num =5

    不变

  1. 最终返回:(1, 9)

六、测试代码

if findMinAndMax([]) != (None, None): print('测试失败!') elif findMinAndMax([7]) != (7, 7): print('测试失败!') elif findMinAndMax([7, 1]) != (1, 7): print('测试失败!') elif findMinAndMax([7, 1, 3, 9, 5]) != (1, 9): print('测试失败!') else: print('测试成功!')
测试成功!

===分割线=

代码

def findmaxandmin(L): if len(L)==0: return(None,None) L_max=L[0] L_min=L[0] for i in L: if i > L_max: L_max=i if i < L_min: L_min=i return(L_max,L_min) L=[1,2,3,4,5,6,7] print(findmaxandmin(L))

==分割线=

练习 1(基础)

完善函数,返回列表里的最大值

def get_max(L): if len(L) == 0: return None # 在这里写代码 # 测试 print(get_max([3, 1, 4, 2])) # 应该输出 4

代码

def get_max(L): if len(L) == 0: return None L_max = L[0] for i in L: if i > L_max: L_max = i return L_max L=[1,2,3,4,5,6,7,8,9,99] print(get_max(L))

练习 2(进阶)

完善函数,返回列表里的最小值

def get_min(L): if len(L) == 0: return None # 在这里写代码 # 测试 print(get_min([5, 8, 3, 9])) # 应该输出 3

代码

def get_min(L): if len(L) == 0: return None L_min = L[0] for i in L: if i<L_min: L_min = i return L_min L=[1,2,3,47,8,0] print(get_min(L))

练习 3(综合,和原题一样)

返回一个元组:(最小值, 最大值)

def find_min_max(L): # 在这里写代码 # 测试 print(find_min_max([7, 1, 3, 9, 5])) # (1, 9) print(find_min_max([])) # (None, None) print(find_min_max([666])) # (666, 666)

代码

def find_min_max(L): if len(L) == 0: return (None, None) L_max=L[0] L_min=L[0] for i in L: if i > L_max: L_max = i if i < L_min: L_min = i return (L_max, L_min) L=[1,2,3,4,5,6,7,8,9,10,11,12] print(find_min_max(L))
http://www.cnnetsun.cn/news/2052453.html

相关文章:

  • LabML最佳实践:大型项目中管理数百个实验的秘诀
  • 深入探究MybatisPlus中orderBy系列方法的动态构建与条件控制
  • Resemble Enhance:基于深度学习的专业级语音增强系统架构深度剖析
  • Keycloak Kubernetes和OpenShift部署:云原生环境下的身份管理
  • 用Windows API mciSendString在C/C++里做个简易音乐播放器(附完整源码)
  • Seaport高级功能:如何实现NFT的批量交易和组合订单
  • Windows系统优化终极指南:WinUtil一键配置工具完全教程
  • 如何用Qwen3-VL-2B做OCR?图文识别部署教程详细步骤
  • 告别‘纸面理论’:用Python+Matplotlib实战可视化平面阵列的切比雪夫与泰勒分布
  • 题解:洛谷 P7915 [CSP-S 2021] 回文
  • Qwen3-14B私有部署灾备方案:镜像备份、状态快照、跨机房容灾设计
  • 强化学习论文查找指南
  • Linux 内核参数导致连接数暴增,我用 ss + iptables 三分钟定位了 SYN Flood 元凶
  • FPGA课程设计避坑指南:搞定MIPS模型机功能测试的5个关键步骤
  • **用Python实现基于规则的音乐生成系统:从代码到旋律的奇妙之旅**在人工智能与创意产业深度融合的时代,**
  • MSYS2的C/C++,python2,python3编译环境安装脚本
  • Faster R-CNN里的RPN网络到底在干嘛?用大白话和代码图解锚框生成与训练
  • Linux文件系统(一):从磁盘结构到文件系统基础
  • 解锁学术新次元:书匠策AI——期刊论文写作的“魔法宝盒”
  • 英特尔发布至强600系列工作站处理器与锐炫Pro B70 GPU,双芯联动重塑AI工作站格局
  • DC6靶机的渗透测试与复盘
  • 终极指南:HTTrack网站镜像工具完整使用教程
  • 把远端数据当本地数据来查, 读懂 SAP HANA 里的 Federating Queries
  • FlicFlac音频转换工具:5个关键特性解析与技术实现
  • VSCode 2026工业编程配置必须做的7件事,第4件92%工程师至今忽略——否则无法通过IEC 62443安全审计
  • 从AK4490到ES9038:聊聊那些年我们用过的DAC芯片,以及它们背后的声音故事
  • 别再傻傻分不清了!Modbus RTU、TCP、RTU over TCP/IP 三兄弟到底啥区别?用Java代码实战给你讲明白
  • 西门子WinCC报表实战:手把手教你用用户归档+SQL Server实现数据查询与打印(附避坑指南)
  • 2026年转行AI产品经理,0基础小白必看!高薪风口,你准备好了吗?
  • 深度解析开源工具:如何高效实现《赛博朋克2077》存档编辑与数据修改