我刚刚开始使用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?我想这是一个简单的疏忽,但我需要知道这里的问题是什么!
答案 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
/ dict
在try
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引导我进入解决方案。