【发布时间】:2020-08-16 17:44:14
【问题描述】:
我正在尝试为 lambda School 做课前作业,而 Loops 让我非常头疼。我有一个包含身高和体重的二维名称列表。高度以厘米为单位,所以我使用循环将其转换为米。然后为了计算 BMI,我尝试运行一个循环,但它一直只给我最后一个。让我输入代码,这样更有意义。
person_data2
[['John', 84.5, 184],
['Ryan', 81.8, 177],
['Bobby', 86.1, 190],
['Pete', 92.2, 188],
['Esther', 69.6, 159],
['Jane', 72.0, 166],
['Samantha', 51.3, 162]]
使用下面的循环将高度从 cm 更改为 m,它起作用了
for i, person in enumerate(person_data2):
person_data2[i][2] = person_data2[i][2] / 100
print(person_data2)
[['John', 84.5, 1.84],
['Ryan', 81.8, 1.77],
['Bobby', 86.1, 1.9],
['Pete', 92.2, 1.88],
['Esther', 69.6, 1.59],
['Jane', 72.0, 1.66],
['Samantha', 51.3, 1.62]]
BMI = 体重/(身高^2) 所以我跑了这个
for i, person in enumerate(person_data2):
BMI2 = ((person_data2[i][1])/(person_data2[i][2]**2))
print (BMI2)
19.547325102880652
为什么它只运行最后一个嵌套列表 BMI,即 Samanthas BMI,而不运行其余的? TBH 我不完全理解循环,从 cm 更改为 m 有点复制和粘贴以及反复试验。有人可以指出我做错了什么吗?如果您知道我可以使用任何资源来帮助我解决这个问题,我也将不胜感激。
【问题讨论】:
-
在循环内打印。你这样做的方式,你只打印最后一个值
-
你想让 BMI2 成为一个列表吗?
-
是的,我希望 BMI2 返回一个包含每个人 BMI 的列表