Как я могу рассчитать bmi вложенного списка, используя понимание списка? - PullRequest
0 голосов
/ 09 июля 2020

Это список>

person_data = [
              ['John', 84.9, 184],
              ['Ryan', 81.8, 177],
              ['Bobby', 86.1, 190],
              ['Lambda Llama', 140, 180],      # Name, Weights, Heights
              ['Pete', 92.2, 188],
              ['Esther', 69.6, 159],
              ['Jane', 72.0, 166],
              ['Samantha', 51.3, 162]
              ]

Это то, что я могу сделать до сих пор.

BMI = [person_data[0][1]/((person_data[0][2]/100)**2)
      for i in person_data]

Результат:

[25.07679584120983,
 25.07679584120983,
 25.07679584120983,
 25.07679584120983,
 25.07679584120983,
 25.07679584120983,
 25.07679584120983,
 25.07679584120983]

Однако я хочу, чтобы список понимался как l oop через весь вес и рост человека. Делает это только для первого вложенного списка. Пожалуйста, помогите.

1 Ответ

2 голосов
/ 09 июля 2020

Вы нигде не используете итерационную переменную i. Каждый элемент - это человек (список атрибутов), поэтому вам нужно сделать что-то вроде этого:

BMI = [person[1]/((person[2]/100)**2) for person in person_data]

Результат:

[25.07679584120983,
 26.109993935331477,
 23.850415512465375,
 43.20987654320987,
 26.086464463558173,
 27.530556544440483,
 26.1286108288576,
 19.547325102880652]
...