Python列表超出范围

2024-04-25 20:35:03 发布

您现在位置:Python中文网/ 问答频道 /正文

如何将列表中的项目移到其范围之外?例如,如果我在下午2点设置闹钟,我希望它在59小时后响,那是几点?你知道吗

我希望我的代码看起来像这样,但它超过了25的范围:

time = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24)
print(time[15+59])

Tags: 项目代码列表timeprint小时闹钟
3条回答

使用“模”获得所需索引的剩余部分除以元组的长度:

 time = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24)
 print(time[(15+59) % len(time)])

这与Python无关,但与模块化算法有关:

print(time[(14 - 1 + 59) % 24])

印刷品

1

np.roll移动iterable中的所有值,从而回答最初的问题。你知道吗

import datetime as dt

>>> dt.datetime(2016, + dt.timedelta(hours=59)
datetime.datetime(2016, 1, 4, 1, 0)  # 1 a.m.

>>> np.roll(time, -59)[14 - 1]  # -1 because of zero based indexing.
1  # 1 a.m.

例如:

>>> np.roll(time, -1)
array([ 2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
       19, 20, 21, 22, 23, 24,  1])

当然,我还是会用模来给出更简单的答案

time(hour - 1 + hour_offset) % 24.

相关问题 更多 >