Test if all elements are in another list in Python -


i want test if reference_list contains of items in required_strings.

required_strings = ['apple','banana','carrot']  reference_list = [['apple','tree'],                   ['banana','grass'],                   ['carrot','grass']] 

i want true or false test result. expected answer 'true'.

this had attempted:

test = [i in reference_list if any(s in s in required_strings)] print test 

you can making use of set , itertools.chain. we're going take advantage of set theory , regard required_strings , reference_list sets, , demonstrate required_strings <= reference_list; is, required strings set contained inside of reference list.

first, use itertools.chain flatten shallow list.

from itertools import chain chain(*reference_list) # iterable object 

next, turn both chained list , tested list sets , compare see if 1 set contained in other.

from itertools import chain set(required_strings) <= set(chain(*reference_list)) 

if you're keen on not using chain, can use sum(list_of_lists, []) reduce instead.

set(required_strings) <= set(sum(reference_lists, [])) 

however, encourage use set instead of list, sort of problem better suited towards set. don't have import it; can use class list.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -