2

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?

MGG
  • 21
  • 1

3 Answers3

1

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
German Khokhlov
  • 1,724
  • 16
  • 15
0

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
ZygD
  • 22,092
  • 39
  • 79
  • 102
ROCK ON
  • 91
  • 1
  • 2
0

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}]
rv.kvetch
  • 9,940
  • 3
  • 24
  • 53