In python, given a list of lists, how do you identify the index of a matching element? -


>>> birds = ['duck', 'chicken', 'goose'] >>> cats = ['tiger', 'lion'] >>> humans = ['human'] >>> at_the_zoo = [birds, cats, humans] 

given list of lists at_the_zoo, how locate list tiger in?

for animal in sum(at_the_zoo, []):     if "tiger" == animal:         print "1 help!" 

for example, can find tiger in list of animals, , if use enumerate, tell me @ index 3. how figure out part of element 1 of list at_the_zoo. searching duck tell me element 0, etc.

thanks!

i think like:

def find_element(nested_lst, what):     idx, sublst in enumerate(nested_lst):         try:             idx2 = sublst.index(what)             return (idx, idx2)         except valueerror:             pass 

should work.

example:

>>> def find_element(nested_lst, what): ...     idx, sublst in enumerate(nested_lst): ...         try: ...             idx2 = sublst.index(what) ...             return (idx, idx2) ...         except valueerror: ...             pass ...  >>> birds = ['duck', 'chicken', 'goose'] >>> cats = ['tiger', 'lion'] >>> humans = ['human'] >>> find_element([birds, cats, humans], 'human') (2, 0) >>> find_element([birds, cats, humans], 'gator')  # returns none if not found. >>> find_element([birds, cats, humans], 'tiger') (1, 0) 

it's worth noting on average, list.index o(n) operation means lists aren't efficient data structure testing membership. if actual data supports it, might worthwhile consider using set instead.


Comments

Popular posts from this blog

javascript - RequestAnimationFrame not working when exiting fullscreen switching space on Safari -

jsf - How to ajax update an item in the footer of a PrimeFaces dataTable? -

django - CSRF verification failed. Request aborted. CSRF cookie not set -