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

如何遍历对象列表获取指定属性?Python代码仅返回9问题排查

问题原因

.weight的属性调用写法是完全正确的,问题出在getWeight函数的循环逻辑:

  • 你当前的逻辑会在第一次循环时直接终止函数:如果第一个患者的体重和传入值匹配就返回对应对象,不匹配就直接返回9,根本不会遍历列表里剩下的p2、p3元素,因此你传入105查询时,第一次比对p1的体重155不匹配,就直接返回了9。

修复后的代码

只需要把返回9的逻辑移到循环外部,等所有元素遍历完成仍未找到匹配项时再返回即可:

from func import Patient

p1 = Patient("John", 131, "03/09/03", 5.2, 155)
p2 = Patient("Josh", 151, "05/18/05", 5.8, 195)
p3 = Patient("Jacob", 179, "12/14/09", 6.5, 105)

patientList = [p1, p2, p3]

def getWeight(weight):
  for patient in patientList:
    if weight == patient.weight:
        return patient
  # 所有元素遍历完仍未匹配,再返回9
  return 9

print(getWeight(105))

补充说明

上述代码还优化了遍历写法,Python中遍历列表元素不需要通过索引取值,直接迭代列表本身即可,可读性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:48:04