I am having a list which having tuple object and I need to search the list for all tuples which contain the string typed in search box. can anyone please help me into this?
I created one search box which having binding function. I can get the text from search box. but for the same text I need to find objects form the list I need to append searched item in new list. so that I can update them in treeview.
from logging import root from tkinter import * from tkinter import ttk root = Tk() root.geometry("500x200") def searchBox_fun(e): typed=Search_box.get() new_list=[] ####### I need to search here ##### for item in data: if typed in item: print(item) new_list.append(item) data=[ ('SS Tubing, Primary Head Lower Transducer', 'ABC324232', 10.0), ('Assy Tubing, L Head- Top Transducer', 'ABC093762', 20.0), ('Assy Tubing, Lower Transducer-Accum Head', 'ABC099762', 13.0), ('Assy Tubing ,Top Transducer- Vent Valve', 'ABC0911562', 23.0)] Search_box=Entry(font=("Helvetica", 12), width=40) Search_box.place(x=60, y=30) Search_box.bind("<KeyRelease>", searchBox_fun) root.mainloop()
Advertisement
Answer
but for the same text I need to find objects form the list
There are many ways to search through a string (i.e. how will you handle spaces in words? If someone types “Transducer Lower” would you want the tuple in index 2
to be a result?
But to access what I think is what you’re looking for, you would index into the tuple: item[0]
So something like this:
for item in data: if typed in item[0]: ...
You can ignore case by, say, comparing the uppercase versions of typed
and item[0]
:
for item in data: if typed.upper() in item[0].upper(): ...