循环仅获取最后一个项目

问题描述 投票:0回答:1

在python 3.x中,我想为mass_list的所有元素运行while循环,并且输出也应该在列表中。但我的循环仅获取最后一个值。

输入:

mass_list = [1969,100756]

预期输出:

 [966,50346]

我的代码是---

for a in mass_list:
    mass_sum = 0
    total_mass_sum = []
    while a >= 6:
        i = (int (a/3)-2) 
        mass_sum = i+mass_sum
        a = i
total_mass_sum.append(mass_sum)
print(total_mass_sum)

我要去哪里错了?

python list loops append
1个回答
0
投票

total_mass_sum的初始化必须在for循环之外,以防止每次迭代重置输出有效载荷,并且total_mass_sum的追加必须在for循环之内:

mass_list = [1969,100756]                     
total_mass_sum = []                           
for a in mass_list:                           
    mass_sum = 0                              
    while a >= 6:                             
        i = (int (a/3)-2)                     
        mass_sum = i+mass_sum                 
        a = i                                 
    total_mass_sum.append(mass_sum)          

print(total_mass_sum) # output: [966, 50346]                       
© www.soinside.com 2019 - 2024. All rights reserved.