订单编号从给定编号

时间:2016-12-22 20:25:11

标签: python sorting

详细说明,例如:我有一个工作日列表:

list_week_day = [0,2,4,5,6]

如果 today.weekday()= 3 ,则订购 list_week_day = [4,5,6,0,2]

那么,怎么做???

4 个答案:

答案 0 :(得分:6)

new = old[n:] + old[:n]

将列表的前部附加到后部。那个暗示之后你能完成吗? n 是您的工作日。

答案 1 :(得分:2)

您是否尝试过以下操作?我怀疑它不是获得你想要的最有效的方式,但它肯定是一种获得它的方法。

list_week_day[today.weekday() : ] + list_week_day[ : today.weekday()]

答案 2 :(得分:2)

还可以尝试:

wday = 3
[(x + wday) % 7 for x in list_week_day]

# [3, 4, 5, 6, 0, 1, 2]

答案 3 :(得分:1)

根据建议here,您可以使用numpy的roll命令,选择合适的值来滚动:

>>> import numpy
>>> a=numpy.arange(1,10) #Generate some data
>>> numpy.roll(a,1)
array([9, 1, 2, 3, 4, 5, 6, 7, 8])
>>> numpy.roll(a,-1)
array([2, 3, 4, 5, 6, 7, 8, 9, 1])
>>> numpy.roll(a,5)
array([5, 6, 7, 8, 9, 1, 2, 3, 4])
>>> numpy.roll(a,9)
array([1, 2, 3, 4, 5, 6, 7, 8, 9])