我正在嘗試對陣列進行排序并遞回列印輸出,直到陣列為 = [0,0,0,0,0] 但它只列印 [3,2,1,0,0] ,,,,,, this是我寫的你能幫我解決這個問題嗎,仍然在學習答案應該是
[4 3 2 1 0 0]
[3 2 1 0 0 0]
[2 1 0 0 0 0]
[1 0 0 0 0 0]
[0 0 0 0 0 0]
numbers=[5,4,3,2,1,1]
numbers.sort()
numbers.sort(reverse=True)
print('List sorted: ', numbers)
def list_arrays(numb):
level=numbers[0]
if len(numbers)-1 < level:
return 0
else:
numbers.pop(0);
print(numbers)
for i in range(len(numbers)):
numbers[i] -= 1
print(numbers)
#list_arrays(numbers)
if __name__=='__main__':
list_arrays(numbers)
uj5u.com熱心網友回復:
你在這里有很多問題。首先,您定義了一個函式,但從未呼叫過該函式。這就是為什么沒有列印的原因。
其次,您不需要“排序”后緊跟“排序(反向)”。
第三,我不知道您通過檢查級別來嘗試什么。這似乎與您的問題無關。
第四,您從每個數字中減去 1,但如果數字大于 0,您應該只減去 1。
最后,你只減去一次。您需要重復它,直到所有數字都為零。
numbers=[5,4,3,2,1,1]
numbers.sort(reverse=True)
print('List sorted: ', numbers)
def list_arrays(numb):
while any(numb):
for i in range(len(numb)):
if numb[i]:
numb[i] -= 1
print(numb)
list_arrays(numbers)
在大多數情況下,我建議在每個回圈期間創建一個新串列,而不是就地修改串列,但對于這個簡單的分配,這將起作用。
要洗掉零,您確實想要創建一個新串列,而不是就地修改。
numbers=[5,4,3,2,1,1]
numbers.sort(reverse=True)
print('List sorted: ', numbers)
def list_arrays(numb):
while numb:
new = []
for v in numb:
if v > 1:
new.append(v-1)
numb = new
print(numb)
list_arrays(numbers)
甚至:
numbers=[5,4,3,2,1,1]
numbers.sort(reverse=True)
print('List sorted: ', numbers)
def list_arrays(numb):
while numb:
numb = [v-1 for v in numb if v>1]
print(numb)
list_arrays(numbers)
uj5u.com熱心網友回復:
在另一條評論中,您要求洗掉所有零。也許這就是您正在尋找的解決方案 -
def run(t):
while(t):
yield t
t = [x - 1 for x in t if x > 1]
mylist = [5,4,3,2,1,1]
for t in run(mylist):
print(t)
[5, 4, 3, 2, 1, 1]
[4, 3, 2, 1]
[3, 2, 1]
[2, 1]
[1]
或者使用list- 將所有行收集在一個陣列中
mylist = [5,4,3,2,1,1]
print(list(run(mylist)))
[
[5, 4, 3, 2, 1, 1],
[4, 3, 2, 1],
[3, 2, 1],
[2, 1],
[1]
]
uj5u.com熱心網友回復:
也許這就是你想要的?
def make_all_zero_and_print(numbers):
while numbers[0] > 0:
print(numbers)
for i in range(len(numbers)):
if numbers[i] > 0:
numbers[i] -= 1
print(numbers)
make_all_zero_and_print([5, 4, 3, 2, 1, 1])
輸出:
[5, 4, 3, 2, 1, 1]
[4, 3, 2, 1, 0, 0]
[3, 2, 1, 0, 0, 0]
[2, 1, 0, 0, 0, 0]
[1, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/382257.html
上一篇:將Python中的JSON資料插入SQLServer
下一篇:按名稱屬性動態資訊列出計數陣列
