【问题标题】:Only the last item is being appended to a list in a while loop (Python)只有最后一项被附加到 while 循环中的列表(Python)
【发布时间】:2019-01-12 08:36:24
【问题描述】:

我正在尝试创建一个程序,该程序使用while 循环将输入数字的每个数字放入列表中。但是,它只会将数字的最后一位附加到列表中。

代码 -

num = int(input("Enter a number: "))
numstr = str(num)
numlen = len(numstr)
x = 0

while x < numlen:
    digits = []
    a = numstr[x]
    digits.append(a)
    x = x + 1

print(digits)

因此,如果我输入 372 作为数字,列表将只是 ['2'],长度为 1

【问题讨论】:

  • 因为您将 digits=[] 重新初始化为 while 循环内的一个空列表。把它放在while循环之前
  • 可能你需要在while循环之前移动digits = []

标签: python list while-loop


【解决方案1】:

试试这个代码:

digits = [i for i in str(num)]

【讨论】:

  • 如果 OP 有错误,如果答案能解释错误在哪里,那就太好了。如果提供了不同的解决方案,最好解释一下它的作用。
【解决方案2】:

你不能比digits = list(str(num)) 做得更好。事实上,由于input返回的是字符串,所以连转换为数字都不需要:

num = input("Enter a number: ")
digits = list(num)

(您仍然可能希望确保输入的内容确实是数字,而不是随机字符串。)

【讨论】:

    猜你喜欢
    • 2019-05-15
    • 1970-01-01
    • 2016-04-23
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 2017-02-11
    • 2021-04-06
    相关资源
    最近更新 更多