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

如何匹配两个列表,查找最值对应的关联元素(如销售额对应月份)

如何获取销售额最值对应的月份

问题背景

我从包含month和sales列的CSV文件中读取数据,将月份存入monthSales列表(字符串类型),销售额存入totalSales列表(字符串类型),代码如下:

monthSales = []
totalSales = []

for col in sale:
    monthSales.append(col['month'])
    totalSales.append((col['sales']))
print('Month: ', monthSales)
print('Sales: ', totalSales)
print(max(totalSales))
print(min(totalSales))

执行后输出:

Month:  ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec']
Sales:  ['6226', '1521', '1842', '2051', '1728', '2138', '7479', '4434', '3615', '5472', '7224', '1812']

目前我能通过max()和min()获取销售额的最值,但需要同时提取对应的月份并展示(例如最高销售额7479对应7月),该如何实现?


解决方案

方法1:通过索引匹配(基础版)

注意:当前totalSales中的销售额是字符串类型,虽然短数字字符串的比较结果和数字一致,但遇到长度不同的数字(如"999"和"1000")会出错,所以第一步要把销售额转为整数类型,再通过索引关联对应月份。

# 将字符串类型的销售额转为整数
sales_numbers = [int(s) for s in totalSales]

# 获取最高销售额及对应月份
max_sale = max(sales_numbers)
max_index = sales_numbers.index(max_sale)
print(f"最高销售额:{max_sale},对应月份:{monthSales[max_index]}")

# 获取最低销售额及对应月份
min_sale = min(sales_numbers)
min_index = sales_numbers.index(min_sale)
print(f"最低销售额:{min_sale},对应月份:{monthSales[min_index]}")

方法2:打包列表为元组(更简洁)

使用zip()将月份和数字类型的销售额打包成元组,再通过max()/min()的key参数直接按销售额排序,一步获取对应条目:

# 打包月份与数字类型的销售额
month_sale_pairs = list(zip(monthSales, map(int, totalSales)))

# 按销售额找最大值对应的条目
max_item = max(month_sale_pairs, key=lambda x: x[1])
print(f"最高销售额:{max_item[1]},对应月份:{max_item[0]}")

# 按销售额找最小值对应的条目
min_item = min(month_sale_pairs, key=lambda x: x[1])
print(f"最低销售额:{min_item[1]},对应月份:{min_item[0]}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 07:24:58