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))
相关推荐
Trouvaille ~1 小时前
零基础入门 LangChain 与 LangGraph(七):真正理解 LangGraph——从工作流、状态图到三个核心案例
python·langchain·agent·workflow·langgraph·ai应用开发·智能体开发
WL_Aurora1 小时前
2026天梯赛题解
python·算法
无风听海2 小时前
深入理解 Python 生成器
python
yuezhilangniao2 小时前
tshark + tcpdump 入门实战笔记:从网站分析到 DDoS 模拟
笔记·ddos·tcpdump
郝学胜-神的一滴2 小时前
系统设计:新鲜事系统扩展与优化
java·python·职场和发展·php·软件工程·软件构建
思绪无限2 小时前
YOLOv5至YOLOv12升级:零售柜商品检测软件的设计与实现(完整代码+界面+数据集项目)
人工智能·python·深度学习·目标检测·计算机视觉·零售柜商品检测·yolov12
zl_dfq2 小时前
Python学习6 之 【Lambda表达式、列表与元组、推导式】
python
AI算法沐枫2 小时前
从客服转行AI Agent:半年学习与求职复盘
人工智能·深度学习·学习·大模型·agent·智能体·ai应用开发
kishu_iOS&AI2 小时前
深度学习 —— 正则化&批量归一化BN
人工智能·pytorch·python·深度学习