【问题标题】:Python: Comparing dictionary key with stringPython:将字典键与字符串进行比较
【发布时间】:2018-10-05 17:37:58
【问题描述】:

我正在尝试将字典中的键与 Python 中的字符串进行比较,但我找不到任何方法。假设我有:

dict = {"a" : 1, "b" : 2}

我想将字典中第一个索引(即“a”)的键与字符串进行比较。所以像:

if ´Dictionary key´ == "a":
    return True
else:
    return False

有没有办法做到这一点?感谢我能得到的所有帮助。

【问题讨论】:

  • dict 没有索引。它有键和值
  • 字典不是有序的数据结构,没有“第一索引”。 'a' in dict(顺便说一下,这是一个坏名字,因为它会影响内置)会告诉你它是否是一个键。另请注意,您只能return <boolean_expression>
  • print("a" in dict.keys()) ?
  • @Rakesh 不要使用x in d.keys(),它充其量是多余的(在python 3中)因为你可以只使用x in d,更糟糕的是,在Python 2中它实现了一个新列表,并且将基于恒定时间哈希的查找更改为 O(N) 线性搜索....但是您正在做的事情是肯定的。
  • Python dict 对象没有索引,它们有。 Python dict 对象不是 javascript 对象。

标签: python string dictionary comparison


【解决方案1】:

Python 字典有 keysvalues 使用这些 keys 访问。

您可以按如下方式访问密钥,您的 dict 密钥将存储在 key 变量中:

my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
    print key

这将打印:

a
b

然后您可以进行任何您想要的比较:

my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
    if key == "a":
        return True
    else:
        return False

可以改进为:

my_dict = {"a" : 1, "b" : 2}
print "a" in my_dict.keys()

然后您可以访问字典中每个键的值,如下所示:

my_dict = {"a" : 1, "b" : 2}
for key in my_dict:
    print my_dict[key]

这将打印:

1
2

我建议您从官方 Python 文档中阅读更多关于字典的信息:https://docs.python.org/3.6/tutorial/datastructures.html#dictionaries

【讨论】:

  • 最后五行可以直接替换成return "a" in my_dict
  • @Ev.Kounis 显然是的,但我只是使用 OP 的代码而不是混淆他,我会在编辑中添加您的建议
  • @Ev.Kounis 应该是print "a" in my_dict.keys()
【解决方案2】:
result = True if "a" in dict.keys() else False
return result

对于您问题中的示例,result 将是 True

如果您想遍历每个键,索引将无济于事,因为 Python 中的字典不能代替。您可以改为执行以下操作:

for key in dict.keys():
    #do something with key 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-21
    相关资源
    最近更新 更多