每次重复函数时从列表中添加新数字 (Python 3)

Add new number from a list every time a function is repeated (Python 3)

我有这个列表:

list_vin = ['D03960','D03987','D04014']

这个使用列表的函数:

def lol():
    pyautogui.click(699,60)
    pyautogui.hotkey('command','f')
    pyautogui.typewrite(list_vin[2])
    pyautogui.press('enter')
    time.sleep(0.5)
    pyautogui.hotkey('command','p')
    pyautogui.press('enter')
lol()

并且此函数重复列表:

def refresh():
    schedule.every(int(1)).seconds.do(lol)
    while 1:
        schedule.run_pending()
        time.sleep(1)
refresh()

我怎样才能使每次函数重复时都使用列表中的新项目?例如。第一次函数运行它使用这个 D03960,第二次函数运行它在函数的这一行使用这个 D03987 pyautogui.typewrite(list_vin[2])

我是初学者,如果我的问题措辞不正确,请不要生气,希望您能理解。顺便说一句,请随时完全更改代码。

提前致谢。

使用.pop()

pop() 方法 returns 给定索引处的项目。此项目也已从列表中删除。

def lol():
    pyautogui.click(699,60)
    pyautogui.hotkey('command','f')
    pyautogui.typewrite(list_vin[2])
    pyautogui.press('enter')
    time.sleep(0.5)
    pyautogui.hotkey('command','p')
    pyautogui.press('enter')
    list_vin.pop()
lol()

所以每次你 运行 lol() 你的迭代器 list_vin 都会变得“更短”

使用计数器

@chickenshifu 的反应很好,但请记住,如果使用 pop,list_vin 最终将是空的。请务必在您的代码中考虑到这一点。

如果您不想删除列表中的项目,您可以执行以下操作:

iteration = 0 

def lol(index):
    pyautogui.click(699,60)
    pyautogui.hotkey('command','f')
    pyautogui.typewrite(list_vin[index])
    pyautogui.press('enter')
    time.sleep(0.5)
    pyautogui.hotkey('command','p')
    pyautogui.press('enter')
    iteration += 1 
lol(iteration)

我的方法跟踪您正在使用 list_vin 的哪个项目,并通过索引获取该项目。 'iteration' 将在 'lol' 函数结束时增加 1。

您知道当 iteration 等于 len(list_vin) 时您将到达列表的末尾。

如果您有任何问题或者我需要澄清任何事情,请告诉我!