如何检查字符串是否在字典中?我试过但它给了我一个错误,我不能使用字符串索引。
我的列表是这样的:
o_list = [{'h': 4, 'name': 'a'},{'h': 6, 'name': 'b'},{'h': 1, 'name': 'c'}]
我必须用这个变量检查它:
min_node = a
我试过这种方式:
for i, elem in enumerate(o_list):
if min_node in o_list[i]['name']:
return min_node
else:
return 'error in retrieving min F'
答案 0 :(得分:2)
我认为你的问题是a是一个变量而不是字符串'a'
这项工作
o_list = [{'h': 4, 'name': 'a'},{'h': 6, 'name': 'b'},{'h': 1, 'name': 'c'}]
min_node = 'a'
def f():
for i, elem in enumerate(o_list):
if min_node == o_list[i]['name']:
return min_node
else:
return 'error in retrieving min F'
print f()
然而,执行以下操作会更优雅
o_list = [{'h': 4, 'name': 'a'},{'h': 6, 'name': 'b'},{'h': 1, 'name': 'c'}]
min_node = 'a'
def f():
for elem in o_list:
if min_node == elem["name"]:
return min_node
else:
return 'error in retrieving min F'
print f()
答案 1 :(得分:1)
不确定您使用enumerate
的原因;下面的代码片段构建了一个名为names
的列表,只需使用in
子句来检查名称是否在此列表中:
In [2]: o_list = [{'h': 4, 'name': 'a'},{'h': 6, 'name': 'b'},{'h': 1, 'name': 'c'}]
In [3]: names = [item.get('name') for item in o_list] # build list
In [4]: names # show list contents
Out[4]: ['a', 'b', 'c']
In [5]: 'a' in names
Out[5]: True
In [6]: 'z' in names
Out[6]: False
答案 2 :(得分:0)
if any(min_node in item['name'] for item in o_list):
return min_node
else:
return 'error in retrieving min F'