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))
相关推荐
benchmark_cc8 小时前
如何用 Python + QuantDash 快速构建高胜率“配对交易(Pairs Trading)”策略?
开发语言·人工智能·python·pandas·量化交易·quantdash
踏月的造梦星球8 小时前
DMDPC 学习:架构、部署、运维与调优
运维·数据库·学习·架构
Python+999 小时前
Java 枚举类(Enum)详解:从基础到高级应用
java·开发语言·python
dunge202610 小时前
2026年7月最新ChatGPT Plus / Pro 与 Codex:当 AI Agent 最新5.6版本来袭,必须理解事务、幂等与补偿
开发语言·人工智能·python
GHL28427109011 小时前
unreferenced formal parameter 解决办法学习
学习
小白学大数据12 小时前
两周完成爬虫技术栈升级:Scrapy 迁移 Crawlo 的路径与取舍
爬虫·python·scrapy
用户83562907805112 小时前
使用 Python 在 Excel 中添加和自定义文本框
后端·python
fanchenxinok12 小时前
学习笔记:LabVIEW调用DLL解析S19文件教程
笔记·学习·labview·dll解析
疯狂打码的少年13 小时前
【软件工程】结构化设计:模块独立性与耦合内聚
java·开发语言·笔记·软件工程
总裁余(余登武)13 小时前
python多个py文件打包【解决exe不能移动运行bug】
python