【问题标题】:how to search inside dictionaries wrapped in a list [duplicate]如何在包含在列表中的字典中搜索[重复]
【发布时间】:2021-11-02 11:58:12
【问题描述】:
我们在一个列表中有很多字典
例如:
list=[
{"name": "Tom", "age": 10},
{"name": "Sara", "age": 11},
{"name": "Mark", "age": 5},
{"name": "Pam", "age": 7}
]
如何在“name”(或任何其他字符序列)中搜索“ar”字符?
我的意思是我怎样才能用“ar”只检索“name”
换句话说,如何在 python 中的列表中搜索字典?
【问题讨论】:
标签:
python-3.x
list
dictionary
【解决方案1】:
你可以像if "ar" in "Sara"一样使用if <substring> in <string>
暗示你的例子:
for i in range(len(list)):
if "ar" in list[i]["name"]:
# here you are
【解决方案2】:
可以使用python的字符串.find方法:
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
【解决方案3】:
看起来很简单:
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}]