Python 仅为回调函数传递了最后一个变量

Python 仅为回调函数传递了最后一个变量,python,tkinter,Python,Tkinter,我试图为Tkinter中的按钮数组生成带有变量参数的回调函数,但问题是所有回调函数只传递最后一项。例如,我有一些类似于: 对于btn列表中的每个按钮,a列表中的最后一项2将传递给函数funct。但是,我希望第一个按钮的[0]传递给funct,第二个按钮的[1]传递给funct,依此类推。我如何着手解决这个问题 这很有效。谢谢你,先生,你是一位学者和绅士。这工作做得很好。谢谢你,先生,你是一位学者和绅士。 a = [0, 1, 2] btn = [] for i in range(0,3):

我试图为Tkinter中的按钮数组生成带有变量参数的回调函数,但问题是所有回调函数只传递最后一项。例如,我有一些类似于:

对于btn列表中的每个按钮,a列表中的最后一项2将传递给函数funct。但是,我希望第一个按钮的[0]传递给funct,第二个按钮的[1]传递给funct,依此类推。我如何着手解决这个问题


这很有效。谢谢你,先生,你是一位学者和绅士。这工作做得很好。谢谢你,先生,你是一位学者和绅士。
a = [0, 1, 2]
btn = []
for i in range(0,3):
    btn.append(Button(frame, text='something', command=lambda: funct(a[i])))
for i in range(0,3):
    btn.append(Button(frame, text='something',
      command=lambda a=a, i=i: funct(a[i])))