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

Python中get_checkin_bags函数实现及for循环问题求助

Python行李筛选函数问题修正

你的代码存在以下几个关键问题:

  • 参数顺序错误:题目明确函数参数顺序为bag_weights(行李重量列表)、min_weight(托运最小重量)、max_weight(托运最大重量),你定义的函数参数顺序完全颠倒,会导致参数传递错位。
  • range函数误用:range()仅接受整数类型的起始、结束参数,你传入了浮点数min_weight,还错误地给len()传递两个参数,语法完全错误。遍历行李列表不需要用索引,直接遍历元素更简洁。
  • 条件判断错误:题目要求包含边界值(即重量需>= min_weight且<= max_weight),你用了>和<,会漏掉刚好等于最小/最大重量的行李。
  • append操作错误:你将整个bag_weights列表添加到output,而不是当前符合条件的单个行李重量。
  • 提前返回问题:你在循环内第一次满足条件就执行return,函数只会返回第一个符合条件的元素,无法收集所有符合要求的行李。
  • 全局变量使用不当:全局变量output会导致函数多次调用时结果混乱,应在函数内部初始化结果列表。

修正后的代码

基础循环版本

def get_checkin_bags(bag_weights, min_weight, max_weight):
    output = []
    for weight in bag_weights:
        if min_weight <= weight <= max_weight:
            output.append(weight)
    return output

# 测试示例
bag_weights = [33.0, 6.3, 5.1, 53.4, 31.5]
min_weight = 10.0
max_weight = 50.0
print(get_checkin_bags(bag_weights, min_weight, max_weight))  # 输出 [33.0, 31.5]

简洁列表推导式版本

def get_checkin_bags(bag_weights, min_weight, max_weight):
    return [weight for weight in bag_weights if min_weight <= weight <= max_weight]

# 测试示例
bag_weights = [33.0, 6.3, 5.1, 53.4, 31.5]
min_weight = 10.0
max_weight = 50.0
print(get_checkin_bags(bag_weights, min_weight, max_weight))  # 输出 [33.0, 31.5]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 19:15:45