如何解决尝试追加时,Python始终返回空白列表?
python的新手,并尝试学习循环。尝试从两个列表中获取值来计算每个人的BMI,但一直得到一个空白列表。
heights = [184,177,190,188,159,166]
weights = [84.9,81.8,86.1,92.2,69.6,72.0 ]
BMIS = []
for i,bmi in BMIS:
BMIS.append(weights[i] / heights[i])
print(BMIS)
解决方法
您正在遍历BMIS,这是一个空列表。遍历高点或权重
heights = [184,177,190,188,159,166]
weights = [84.9,81.8,86.1,92.2,69.6,72.0 ]
BMIS = []
for i in range(len(heights)):
BMIS.append(weights[i] / heights[i])
print(BMIS)
,
您要遍历的列表中没有任何内容。 for循环主体中的代码将永远不会执行。您可以将for循环更改为:
for height,weight in zip(heights,weights):
BMIS.append(weight/height)
,
您正在遍历一个空列表。只需使用zip
一次遍历每个列表即可。
for height,weights):
BMIS.append(weight / height)
此理解将产生相同的列表:
BMIS = [weight/height for height,weights)]
,
假设权重列表的高度始终具有相同的len(),则可以循环使用它作为范围
heights = [184,166]
weights = [84.9,72.0 ]
BMIS = []
for i in range(len(heights)):
BMIS.append(weights[i] / heights[i])
print(BMIS)
,
欢迎使用StackOverFlow。让我们检查一下您的main for循环:
for i,bmi in BMIS:
BMIS.append(weights[i] / heights[i])
自初始化BMIS = []
以来,您正在遍历一个空列表。更好的方法是在如下范围内进行迭代:
for i in range(0,len(heights)):
BMIS.append(weights[i] / heights[i])
这样,您将获得每个列表的第i个位置,进行除法并将结果添加到BMIS
列表中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。