字典键和字符串

时间:2017-12-06 07:31:27

标签: python dictionary

我刚刚开始使用python中的字典,我偶然发现了以下代码片段:

for word in word_dict:
    print(word) # Obviously returns the key
print("draw" in word_dict) # returns False even though the key is existent

我认为返回False可能是由于"draw"等类型的不兼容性是一个字符串而且循环中的word可能是some sort of string key type

但是当我检查类型时,我可以看到两者都只有<class 'str'>类型!!

如何将我提供的字符串键转换为“draw”以作为键接受并返回True?我想这是一个简单的疏忽,但我需要知道这里的问题是什么!

3 个答案:

答案 0 :(得分:0)

我觉得你有点迷失在这里。

for variable in dict_var: - 迭代dict个密钥

密钥dict.get(<key_name>)

<key_name>返回值

for word in word_dict:
    print(word_dict.get(word))

将返回dict的所有值,因为您迭代了所有键。

some_var in word_dict - 检查some_var键列表中word_dict的值是否为print("draw" in word_dict),如果密钥存在,True只打印False / dicttry FStrJSONResponse:= IdHTTP1.Get('http://192.168.1.21/api/users'); js:= TlkJSON.ParseText(FStrJSONResponse) as TlkJSONobject; if js.Field['error'].Value = true then begin FStrErrorMsg:= js.Field['message'].Value; Exit; end; SetLength(Result, js.Field['data'].Count); for i := 0 to js.Field['data'].Count-1 do begin if VarIsStr(js.Field['data'].Child[i].Field['id'].Value) then Result[i].identifier:= js.Field['data'].Child[i].Field['id'].Value; if VarIsStr(js.Field['data'].Child[i].Field['email'].Value) then Result[i].email:= js.Field['data'].Child[i].Field['email'].Value; finally js.Free; end;

我会强烈建议您阅读dictionaries上的文档。

答案 1 :(得分:0)

你确定“draw”是word_dict的关键之一吗?检查你的字典。

    >>> word_dict = {"draw":1,"xx":2}
    >>> print ("draw" in word_dict)
    True
    >>>

答案 2 :(得分:0)

感谢大家的时间。

我实际上将文件中的单词拆分为字典中的键,同时键也有一个尾随\n。当我给出一个没有换行符的字符串时,这就是我得到False的原因。当我通过循环word_dict.keys()

的键进行检查时,我发现了这一点

感谢schwobaseggl引导我进入解决方案。