python - 使用此 for 循环计算体重指数时,为什么我会得到不受支持的操作数类型?
问题描述
提前感谢您的耐心等待。我已经有一个二维列表 = person_data。每个元素都有三个索引:名称、体重、身高,按顺序排列。身高以厘米为单位,体重以公斤为单位。我无法创建一个 for 循环来计算体重指数:ℎ()/ℎ()2。下面的for循环:
for person in person_data:
for i, person in enumerate(person_data):
BMI.append(person / person_data[0][2] ** 2)
print(BMI)
解决方案
如果我正确地回答了您的问题,那么您person_data
是一个包含有关人员信息的列表,该列表也是一个包含 3 个元素(姓名、体重、身高)的列表。然后不需要使用两个循环。只需打开内部列表即可获得体重和身高。就这样做——
BMI=[]
for person in person_data:
# name can be ignored in this case
_, weight, height = person
BMI.append(weight / height ** 2)
print(BMI)
在您的代码中,外循环person
和内循环一样。所以外循环的变量被内循环的变量person
所遮蔽。person
此外,由于您没有使用元素的索引,因此无需使用enumerate()
.
如果您更喜欢列表理解,那么 -
BMI = [person[1]/person[2]**2 for person in person_data]
推荐阅读
- node.js - 反应页面重定向而不发送 POST 请求?
- javascript - 动态材质 DataGrid 行宽
- image-processing - 找不到函数“sqrt”的匹配重载
- google-chrome - 从 Chrome 扩展程序运行控制台命令
- python - 寻找非常大自由度系统的特征值和特征向量的方法
- spring-boot - 调用 REST API 时 GCP 中的异常
- vue.js - Vuejs日期选择器不显示任何内容
- python-3.x - Python MongoDB查询以获取'_id'!= id的文档列表
- html - 如何在不创建滚轮的情况下让 div 填充屏幕的剩余高度?
- spring-integration - Spring Integration - Java DSL 中的服务激活器