Python -从多维列表中搜索并在TKinter Widget上显示它



这是我的列表:

contactlist = [
['Person1 Lastname1', '123123', 'Random City 1'],
['Person2 Lastname2', '246810', 'Random City 2'],
['Person3 Lastname3', '13579123', 'Random City 3'],
]

我有一个TKinter小部件,用户可以在其中输入一个名称,并在其中显示搜索结果。

Label(root,text = 'NAME',font = 'arial 12 bold',bg = 'SlateGray3').place(x=30,y=20)
Entry(root,textvariable = Name).place(x = 100,y = 20)

我想做的是每当用户在小部件(名称)中输入一些东西时,然后按"搜索"按钮,它将在小部件中显示全名。我该怎么做呢?

编辑:更明确的目标

你可以尝试使用这个程序,只是一个原始的界面,你可以自己设计。

from tkinter import *
root = Tk()
contactlist = [
['Person1 Lastname1', '123123', 'Random City 1'],
['Person2 Lastname2', '246810', 'Random City 2'],
['Person3 Lastname3', '13579123', 'Random City 3'],
]
l1 = Label(root,text = 'Name')
l1.pack()
l2 = Label(root,text = 'Phn')
l2.pack()
l3 = Label(root,text = 'City')
l3.pack()
e = Entry(root)
e.pack()
def upd():
global l1, l2, l3, e, contactlist
resarr = [i for i in contactlist if i[0] == e.get()]
if len(resarr)>0:
l1.configure(text = resarr[0][0])
l2.configure(text = resarr[0][1])
l3.configure(text = resarr[0][2])
btn1 = Button(root, command=upd, text="Search")
btn1.pack()
root.mainloop()

也可以替换

btn1 = Button(root, command=upd, text="Search")
btn1.pack()

e.bind("<KeyRelease>", upd)

自动更新内容

最新更新