我們可以for在陣列中使用回圈,例如:arr = [i for i in range(10)]
我想將一個數字的所有數字添加到陣列中;我們可以使用相同的方法并使用while回圈來實作嗎?
uj5u.com熱心網友回復:
您所展示的是串列理解,而不是陣列內的回圈。
沒有涉及while關鍵字的事情。
可以使用回圈定義生成器,while然后在串列推導式中使用該生成器。
例如,這會生成一個非負整數的所有數字(以相反的順序):
def digits(n):
while True:
n, d = divmod(n, 10)
yield d
if n == 0:
break
arr = [i for i in digits(123)] # [3, 2, 1]
uj5u.com熱心網友回復:
我想將一個數字的所有數字添加到陣列中,我們可以起訴相同的方法并使用 while 回圈實作嗎?
不,你不能用 while 回圈做類似的事情。該語法[i for i in range(10)]稱為“串列理解”。如果你用谷歌搜索這些詞,你會找到更多關于它們如何作業的資訊。
對于數字的數字,我建議將其轉換為字串:
number = 12345
digits = str(number)
現在您可以digits像使用數字字符陣列一樣使用:
print(digits[2]) # output: 3
for d in digits:
print(d)
如果你想要一個數字串列作為整數而不是字符:
digits = [int(c) for c in str(number)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/350408.html
