If I have a dict such as:
foo = {('foo', 45):5, ('bar', 34):3}
How can I check against part of that tuple?
if 'foo' in foo: #should be true
pass
if 45 in foo: #also should be true
Or some other syntax.
解决方案>>> foo = {('foo', 45): 5, ('bar', 34): 3}
>>> any(t1 == "foo" for (t1, t2) in foo)
True
>>> any(t2 == 45 for (t1, t2) in foo)
True
If you don't know where the value is to be found you can just check the whole pair:
>>> any(45 in pair for pair in foo)
True
You can also a generators approach (flatten):
>>> 45 in flatten(foo)
True
That said, probably the best idea is to build your data so you can check this kind of inclussion in O(1) time (a set? a refactored dictionary?)