I'm trying to make a little file explorer with just buttons, I'm still in the early stages and want to make a function prints which button was pressed and came up with this:
import tkinter as tk
buttons = []
window = tk.Tk()
window.geometry("200x100")
def open(button):
    print(button)
def list(titles):
    i=0
    while i<(len(titles)):
        btn = tk.Button(text=titles[i], width=20, command=lambda: open(i))
        buttons.append(btn)
        buttons[i].grid(row=i, column=1)
        print(f"adding {titles[i]}")
        i=i+1
list(["title1", "title2", "title3"])
window.mainloop()
There's one problem: It always prints 3. I think I know what the problem is, i always stays 3 after generating the button so it passes 3 to the function, but I don't know how to solve it.
I used the lambda cuz I cant pass parameters just using open(i) and found the lambda-solution to that on this question .
Can someone help? Tnx!
 
    