Cycle a list from alternating sides

后端 未结 15 2081
温柔的废话
温柔的废话 2020-12-14 01:03

Given a list

a = [0,1,2,3,4,5,6,7,8,9]

how can I get

b = [0,9,1,8,2,7,3,6,4,5]

That is, produce a new lis

15条回答
  •  离开以前
    2020-12-14 02:01

    Two versions not seen yet:

    b = list(sum(zip(a, a[::-1]), ())[:len(a)])
    

    and

    import itertools as it
    
    b = [a[j] for j in it.accumulate(i*(-1)**i for i in range(len(a)))]
    

提交回复
热议问题