为了账号安全,请及时绑定邮箱和手机立即绑定

运行此循环时出现错误

运行此循环时出现错误

红糖糍粑 2022-06-22 17:18:26
给你一个整数数组a。通过按以下方式b重新排列 的元素来生成一个新数组:ab = [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]。
查看完整描述

1 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

你的逻辑不正确。这是更改最少的工作解决方案:


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))


查看完整回答
反对 回复 2022-06-22
  • 1 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信