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))
相关推荐
Mr.Daozhi几秒前
跨境电商选品完整流水线:Google Trends筛词+Meta广告分析,CLI工具设计实战
开发语言·爬虫·python·跨境电商·工具链·选品
Upsy-Daisy7 分钟前
Hermes Agent 学习笔记 01:一个会记忆、会学习、能长期运行的 AI Agent
人工智能·笔记·学习
我命由我1234511 分钟前
工程中安全帽颜色含义
运维·经验分享·学习·职场和发展·求职招聘·职场发展·学习方法
装不满的克莱因瓶21 分钟前
掌握典型卷积神经网络的搭建
人工智能·python·深度学习·神经网络·机器学习·ai·cnn
LuminousCPP26 分钟前
从零开始学 C++|系列开篇:从 C 到 C++ 的衔接之路
开发语言·c++·笔记
海鸥-w34 分钟前
用python (fastapi)做项目第一天创建项目结构,数据建表,ORM配置安装,写第一个接口
数据库·python·fastapi
㳺三才人子35 分钟前
初探 Flask-WTF
后端·python·flask·html5
星恒随风37 分钟前
C++ 类和对象入门(一):从 class、访问限定符到 this 指针
开发语言·c++·笔记·学习·状态模式