簡體   English   中英

運行此循環時出現錯誤

[英]I am getting error when running this loop

給你一個整數數組a 通過按以下方式重新排列a的元素來生成一個新數組b

b = [a[0], a[len(a)-1], a[1], a[len(a)-2, ...]

我的代碼只循環一次,我只是從這里卡住了。 我嘗試過的如下

def alternatingSort(a):
    length = len(a)
    b = []
    for i in range(length):
        if i % 2:
            b.append(a[length-i])
        else:
            b.append(a[i])
    return b

如果我的輸入是[1, 3, 5, 6, 4, 2] ,我的 output 應該是[1,2,3,4,5,6]但我得到[1, 2, 5, 6, 4, 3] .

你的邏輯不正確。 這是更改最少的工作解決方案:

def alternatingSort(a):
    length = len(a)
    b = []
    for i in range(length):
        if i % 2:
            b.append(a[length - (i // 2) - 1])    # Updated.
        else:
            b.append(a[i // 2])                   # Updated.

    return b

a = [1, 3, 5, 6, 4, 2]
print(alternatingSort(a))

a = [1, 3 ,2]
print(alternatingSort(a))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM