I have a list of dicts e.g.
[{'name':'Bernard','age':7},{'name':'George','age':4},{'name':'Reginald','age':6}]
I'd like to check to see if a string value is the same as the 'name' value in any of the dicts in the list. For example 'Harold' would be False, but 'George' would be True.
I realise I could do this by looping through each item in the list, but I was wondering if there was a more efficient way?
No, there cannot be a more efficient way if you have just this list of dicts.
However, if you want to check frequently, you can extract a dictionary with name:age items:
l = [{'name':'Bernard','age':7},{'name':'George','age':4},{'name':'Reginald','age':6}]
d = dict((i['name'], i['age']) for i in l)
now you have d
:
{'Bernard': 7, 'George': 4, 'Reginald': 6}
and now you can check:
'Harold' in d -> False
'George' in d -> True
It will be much faster than iterating over the original list.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With