how to search inside dictionaries wrapped in a list

Viewed 104

We have many dict in a list

for example:

    list=[
  {"name": "Tom", "age": 10},
  {"name": "Sara", "age": 11},
  {"name": "Mark", "age": 5},
  {"name": "Pam", "age": 7}
]

how can I search for "ar" characters in "name" ( or any other character sequences)? I mean how can I retrieve only "name" with "ar" in other words, how can I search inside dict in list in python?

3 Answers

You may use if <substring> in <string> like if "ar" in "Sara"

Implying to your example:

for i in range(len(list)):
    if "ar" in list[i]["name"]:
        # here you are

You can use python's string .find method:

list=[
   {"name": "Tom", "age": 10},
   {"name": "Sara", "age": 11},
   {"name": "Mark", "age": 5},
   {"name": "Pam", "age": 7}
]

stringToFind = "ar"

for dic in list:
    if dic.keys()[0].find(stringToFind) !== -1:
        #dict key contains the "ar" string
    else:
        #dict key does not contain the "ar" string

Seems simple enough:

listy_list = [
  {"name": "Tom", "age": 10},
  {"name": "Sara", "age": 11},
  {"name": "Mark", "age": 5},
  {"name": "Pam", "age": 7}
]

res = [mappy for mappy in listy_list if 'ar' in mappy['name']]

res
# [{'name': 'Sara', 'age': 11}, {'name': 'Mark', 'age': 5}]
Related