【问题标题】:loop is taking only last item循环只取最后一项
【发布时间】:2020-05-01 08:03:18
【问题描述】:

在 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)

我哪里错了?

【问题讨论】:

  • 缩进您的代码。它在语法上是不正确的。还不清楚您要对每个元素做什么。
  • total_mass_sum(mass_sum)= [966,50346] 我不认为这是有效的 Python。
  • Okey..感谢您指出..我是新手...会记住这一点

标签: python list loops append


【解决方案1】:

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]                       

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 2019-12-16
    • 2020-07-30
    • 2015-04-08
    • 2019-05-06
    • 1970-01-01
    • 2021-06-23
    相关资源
    最近更新 更多