For循环赋值



我有这个数据集,我将使用它来填充缺失的值。

In [1]: sex_class = ['female','male']
        pclass = [1,2,3]
        fill_values = [34,40,29,18,24,25]
In [2]: for i in pclass:
            for j in sex_class:
                print(i,j)
Out[2]: 1 female
        1 male
        2 female
        2 male
        3 female
        3 male

如何使输出显示为:

1 female 34
1 male   40
2 female 29
2 male   18
3 female 24
3 male   25

您可以这样做:

from itertools import product
sex_class = ['female','male']
pclass = [1,2,3]
fill_values = [34,40,29,18,24,25]
for (p,sex),val in zip(product(pclass,sex_class),fill_values):
    print(f"{p} {sex:<6} {val}")

结果输出:

1 female 34
1 male   40
2 female 29
2 male   18
3 female 24
3 male   25

你可以用pop作为列表

sex_class = ['female','male']
pclass = [1,2,3]
fill_values = [34,40,29,18,24,25]
for i in pclass:
     for j in sex_class:
            print(i,j,fill_values.pop(0))
1 female 34
1 male 40
2 female 29
2 male 18
3 female 24
3 male 25

我正在考虑fill_values作为列表并编写答案。

count = 0
for i in pclass:
    for j in sex_class:
        print(i,j,fill_values[count])
        count += 1

最新更新