[英]How do I compare a string with a dictionary element?
如何检查字符串是否在字典中? 我尝试过但是它给我一个错误,我不能使用字符串索引。
我的清单是这样的:
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'
我认为您的问题是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()
不知道为什么要使用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
if any(min_node in item['name'] for item in o_list):
return min_node
else:
return 'error in retrieving min F'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.