我正在读取包含51行4列的csv文件。我将其存储在尺寸为51 X 4的2D列表中。我的目标是创建51个按钮,并每次将元素的值传递到由此创建的列表的list [i] [1]作为其参数。但是,在此代码中,list [50] [1]的值已在所有51个按钮中传递。如何将所需的唯一列表[i] [1]值作为参数传递给第ith个按钮?
这是我的代码。请找到其中的错误,非常感谢您的帮助。谢谢。
file = open('stocklist.csv', 'r')
reader = csv.reader(file)
stocks = []
for line in reader:
w = line[0]
x = line[1]
y = line[2]
z = line[3]
stocks.append([w, x, y, z])
height = 51
width = 4
for i in range(height):
b = tk.Button(f, text=stocks[i][1], command=lambda: open_link(stocks[i][1]))
b.grid(row=i, column=1)
print(b)
答案 0 :(得分:1)
您可以使用functool的partial
(link):
b = tk.Button(f, text=stocks[i][1], command=partial(open_link,stocks[i][1])