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

如何在多列表结构中查找各列的最小值与最大值?

如何找出二维列表每一列的最大值和最小值?

当然可以用min()和max()函数轻松实现这个需求!你的代码已经生成了包含5行3列数据的二维列表list2,现在只需要把列数据转换成行数据,就能直接用这两个函数计算每一列的最值了。

先来看你原来的代码(做了格式优化):

import random
list1 = []
list2 = []
for i in range(5):
    for j in range(3):
        list1.append(random.randrange(1,101))
    list2.append(list1)
    list1=[]

for i in list2:
    for j in i:
        print(j, end=",")
    print(" (Sum: ", sum(i), " Average: ", (sum(i)/len(i)), ")", sep="")
print()

接下来我们添加列最值的计算逻辑,直接看修改后的完整代码:

修改后的可运行代码

import random
list1 = []
list2 = []
for i in range(5):
    for j in range(3):
        list1.append(random.randrange(1,101))
    list2.append(list1)
    list1=[]

# 打印每行的内容、总和与平均值
for i in list2:
    for j in i:
        print(j, end=",")
    print(" (Sum: ", sum(i), " Average: ", (sum(i)/len(i)), ")", sep="")

# 核心:转置二维列表,把列数据转为行数据
columns = list(zip(*list2))
# 遍历每一列,输出最值
for idx, col in enumerate(columns, start=1):
    # 根据列序号调整后缀(1st/2nd/3rd),让输出更贴合你的预期
    suffix = "st" if idx ==1 else "nd" if idx ==2 else "rd"
    print(f"Largest number of {idx}{suffix} column: {max(col)}")
    print(f"Smallest number of {idx}{suffix} column: {min(col)}")

关键逻辑说明

  1. zip(*list2)的妙用:*list2会把二维列表拆分成独立的行列表,zip()会将这些行中对应位置的元素打包成元组,实现列转置。比如原列表是[[a1,a2,a3], [b1,b2,b3], ...],转置后变成[(a1,b1,...), (a2,b2,...), (a3,b3,...)],每个元组就是一列的全部数据。
  2. 直接调用min()/max():转置后的每个元组就是一列数据,直接对元组调用这两个函数,就能快速得到对应列的最小、最大值,完全不需要额外的循环判断。

运行这段代码后,就能输出你预期的包含每行统计、每列最值的结果啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:22:02