Как сделать нажатием кнопки перебор данных из списка поочередно

Хочу выводить данные из списка нажатием кнопки поочередно (по кольцу), у меня выводит все сразу!

Update:

А нужно по одному в одном и том же месте.

Что изменить?

from tkinter import *

def ok():
    list = ['Саша', 'Маша', 'Коля', 'Вася', 'Игорь']
    for i in list:
        l = Label(root, text=i).grid()

root = Tk()
root.geometry(f"150x150+500+150")
root.resizable(False, False)

b = Button(root, text='GO', command=ok)
b.grid(row=1, column=1, sticky='e')
root.mainloop()

Ответы (1 шт):

Автор решения: S. Nick

Как вариант:

from tkinter import *


def ok(i):
    global num
    _list = [1, 2, 3, 4, 5]
#    for i in list:
    l = Label(root, text=_list[i]).grid()
    
    num += 1
    if num > 4:
        num = 0

root = Tk()
root.geometry(f"150x150+500+150")
root.resizable(False, False)

num = 0
b = Button(root, text='GO', command=lambda: ok(num))
b.grid(row=1, column=1, sticky='e')

root.mainloop()

введите сюда описание изображения


Update

from tkinter import *


def ok(i):
    global num
    _list = ['Саша', 'Маша', 'Коля', 'Вася', 'Игорь']
#    for i in list:

#    l = Label(root, text=_list[i]).grid()  
    l = Label(root, text=_list[i]).grid(column=1,row=2)
    
    num += 1
    if num > 4:
        num = 0

root = Tk()
root.geometry(f"150x150+500+150")
root.resizable(False, False)

num = 0
b = Button(root, text='GO', command=lambda: ok(num))
b.grid(row=1, column=1, sticky='e')

root.mainloop()

введите сюда описание изображения

→ Ссылка