繁体   English   中英

如何将字符串与字典元素进行比较?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM