可以忽略列表的最后一个元素吗?

it is possible to ignore the last element of the list?

我有 2 个列表有工作时间和工作要做

hours = ["00:00","06:00","08:30","09:30","10:30","12:30","14:30","16:00","18:00",]
jobs  = [job1,job2,job3,job4,job5,job6,job7,job8,job9]

使用一个循环来使用调度库来调度作业。

for i,x in zip(hours,jobs):
    schedule.every().monday.at(i).do(x)
    schedule.every().tuesday.at(i).do(x)
    schedule.every().wednesday.at(i).do(x)
    schedule.every().thursday.at(i).do(x)
    schedule.every().friday.at(i).do(x)

while True:
        schedule.run_pending()
        time.sleep(1)

我想做的是在星期五 schedule.every().friday.at(i).do(x) 我安排所有作业 除了最后一个

job9 at 18:00

在那种情况下,有什么办法可以避免列表中的最后一项吗?

您可以添加一个 if 条件来检查它是否位于列表的最后一个元素:

for i,x in zip(hours,jobs):
    if i = hours[-1]:
        break
    schedule.every().monday.at(i).do(x)
    schedule.every().tuesday.at(i).do(x)
    schedule.every().wednesday.at(i).do(x)
    schedule.every().thursday.at(i).do(x)
    schedule.every().friday.at(i).do(x)

这将继续循环,直到它到达最后一个元素 (hours[-1]) 并跳出循环。

我相信 Ismail 的回答将避免在所有日期安排最后一份工作。如果您只希望星期五受到影响,请在星期五之前放置 if 声明:

for i,x in zip(hours,jobs):
    schedule.every().monday.at(i).do(x)
    schedule.every().tuesday.at(i).do(x)
    schedule.every().wednesday.at(i).do(x)
    schedule.every().thursday.at(i).do(x)
    if i != hours[-1]:
        schedule.every().friday.at(i).do(x)