首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python中的for循环;创建一个包含比例的列表

python中的for循环;创建一个包含比例的列表
EN

Stack Overflow用户
提问于 2018-09-15 12:03:33
回答 3查看 522关注 0票数 0

我现在陷入了创建一个for循环的泥潭。

以下是我的目标:我想创建一个列表,其中包含每个年龄组的人口比例,例如: 5-10年龄组的人口比例为500/2000 = 0.25

人口= 2000,其中存在3个年龄段:"5-10“、"11-20”、"21-30“No.每个年龄组的人数分别为: 500,700,800

这是我所做的:

代码语言:javascript
复制
n_pop = 2000
label_list = ['5-10', '11-20', '21-30']
sub_pop = [500, 700, 800]
proportion = []
for i in range(len(sub_pop)):
    proportion = sub_pop[i]/ n_pop
print(proportion)

不确定我的代码哪里出错了。

EN

回答 3

Stack Overflow用户

发布于 2018-09-15 12:07:17

你就快到了!

只需将值追加到列表proportion.append(sub_pop[i]/ n_pop),而不是将它们赋值给列表

代码语言:javascript
复制
for i in range(len(sub_pop)):
    proportion.append(sub_pop[i]/ n_pop)
票数 1
EN

Stack Overflow用户

发布于 2018-09-15 12:21:08

你应该指定你的预期结果是什么。因为您已经将proportion声明为一个空数组,所以我假设您想要填充它。

使用循环的每次迭代都会覆盖变量proportion

代码语言:javascript
复制
for i in range(len(sub_pop)):
    proportion = sub_pop[i]/ n_pop
    print(proportion)

循环的第一次迭代,例如,当i为0时,proportion等于浮点数,即第一个比例。然后,当它是1时,你覆盖它,然后它等于第二个比例。第三种情况也是如此。

正如Sruthi建议的那样,你需要用append添加这个列表(而不是用一个全新的值覆盖你的空列表)。https://www.programiz.com/python-programming/methods/list/append

如果proportion的用途是用来存储你所有的比例,我也会把它重命名为proportions。清晰的变量名可以做很多事情来避免混淆。

票数 1
EN

Stack Overflow用户

发布于 2018-09-16 00:35:50

这将是一个尝试使用dictionary的好地方,如下所示如何:

代码语言:javascript
复制
pop = 2000
age_groups = {'5-10': 500, '11-20': 700, '21-30': 800}
proportion = {}
for k, v in age_groups.items():
    percentage = v/2000
    proportion[k] = int(percentage * 100)

print(proportion, '\n')

for i in proportion:
    print(f"Age group {i} is {proportion[i]}% of Population {pop}")

我包含了两个print方法,以帮助您了解如何处理此代码

(xenial)vash@localhost:~/python/stack_overflow$

loop_pop.py 3.7

{' 5-10 ':25,' 11-20 ':35,' 21-30 ':40} 5-10年龄组占2000年人口的25%,11-20年龄组占人口的35%,21-30年龄组占人口的40%

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52341439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档