python - Searching for item in two dictionaries and returning result based on the match -
co_1 = {'a1': [(1, 1)], 'b1': [(0, 4), (0, 0), (4, 0)]} co_2 = {'a2': [(2, 2)], 'b2': [(1, 5), (1, 2), (5, 1)]} position = (x, y)
how check if position(e.g. (1, 5)) present in values of 2 dictionaries 'co_1 , co_2'.
so far have:
for key, value in co_1.items(): if position in value: return (statement1) key, value in co_1.items(): if position in value: return(statement2) #if position not in either value --> return none
is there way clean can search position in both dictionaries , have if-else statement: if position present in values (co_1 or co_2) return (statement) else return none.
such as:
for key, value in co_1.items() , co_2.items(): if position in value in co_1.items(): return statement1 elif position in value in co_2.items(): return statement2 else: return none #example if position = (2, 2) --> return statement2 #exmaple if position = (3, 1) --> return none
it seems keys not relevant here – build set of tuples both dictionaries.
co_1_set = {y x in co_1 y in co_1[x] } co_2_set = {y x in co_2 y in co_2[x] }
now, membership test simple if-elif
statement:
def foo(position): if position in co_1_set: return statement1 elif position in co_2_set: return statement2
you'll want perform set
constructions little possible - ideally when dictionary contents change.
if both dictionaries contain position
, code returns statement1
only. if want different, you'll need make changes appropriate.
Comments
Post a Comment