Skip to content
Advertisement

how to search in List which contains tuples?

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():
        ...
User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement