You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中用嵌套循环遍历双数组?并优化改写指定代码

在Python中使用嵌套循环遍历两个数组及代码优化方案

嘿,这就帮你把问题拆解清楚!

一、如何用嵌套循环遍历两个关联数组

当你有两个长度相同、元素一一对应的数组时,嵌套循环的核心思路是先在外层循环里把两组对应元素配对,再在内层循环处理每个配对里的细节。常见的实现方式有两种:

方式1:用zip()函数配对(推荐,更简洁)

zip()会把多个数组中对应位置的元素打包成元组,直接遍历这些元组就能同时拿到两个数组的对应元素:

# 示例:两个关联数组
fruits = ["apple", "banana", "cherry"]
counts = [3, 5, 2]

# 外层循环配对水果和数量,内层循环遍历每个水果的计数
for fruit, count in zip(fruits, counts):
    for i in range(count):
        print(f"第{i+1}个{fruit}")

方式2:通过索引遍历(适合需要用到索引的场景)

如果需要用到元素的索引值,可以通过数组长度生成索引范围,再分别取两个数组的对应元素:

fruits = ["apple", "banana", "cherry"]
counts = [3, 5, 2]

for idx in range(len(fruits)):
    fruit = fruits[idx]
    count = counts[idx]
    for i in range(count):
        print(f"第{i+1}个{fruit}")

二、你的代码最优改写方案

你原来的代码重复定义了很多变量,还写了4个几乎一样的循环,完全可以用嵌套循环简化,而且输出和原代码完全一致:

改写后的代码

months = ["January", "February", "March", "April"]
days_in_month = [32, 29, 32, 31]

# 外层循环:用zip配对每个月份和对应的天数上限
for month, day_limit in zip(months, days_in_month):
    # 内层循环:遍历当月的每一天(range(1, day_limit)对应原代码的1到day_limit-1)
    for day in range(1, day_limit):
        print(month, day)

为什么这是最优方案?

  • 消除重复代码:不用再单独定义每个月份和天数变量,也不用写重复的for循环,代码量直接减半
  • 可维护性更强:如果后续要添加更多月份,只需要在months和days_in_month数组里加元素就行,不用修改循环逻辑
  • 逻辑更清晰:一眼就能看出来是遍历每个月份的每一天,比原代码的零散结构直观得多

内容的提问来源于stack exchange,提问作者marino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:01:09