运行此循环时出现错误

给你一个整数数组a。通过按以下方式b重新排列 的元素来生成一个新数组:a


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],我的输出应该是[1,2,3,4,5,6] But i get [1, 2, 5, 6, 4, 3]。


红糖糍粑
浏览 89回答 1
1回答

天涯尽头无女友

你的逻辑不正确。这是更改最少的工作解决方案: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 ba = [1, 3, 5, 6, 4, 2]print(alternatingSort(a))a = [1, 3 ,2]print(alternatingSort(a))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python