【发布时间】:2014-12-06 03:19:23
【问题描述】:
我有以下字典
My_Dict= { u'Apple': [u'A' , u'B'] ,u'orange': [u'C' , u'D'] }
我有另一本字典,数据相同,但不是 Unicode
Dict= { 'Apple': ['A' , 'B'] ,'orange': ['C' , 'D'] }
我正在尝试比较两个字典,但它说两个字典不一样。我认为是因为 Unicode
有什么方法可以通过从 My_dict 中删除 Unicode 或将 'Dict' 转换为 Unicode 来比较这两个字典?
我得到 Unicode 的原因是因为我使用的是 S 表达式解析器。下面是解析器模块的链接以供参考。 http://sexpdata.readthedocs.org/en/latest/
【问题讨论】:
-
这两个例子是相等的;
My_Dict == Dict是True。这是因为 Python 只查看内容(使用默认系统编码 ASCII)来比较 Unicode 和字节字符串。 -
换句话说,else 出了点问题;您的实际字典不相等,不是因为一个具有 unicode 字符串和另一个字节字符串,而是它们的内容不同。
-
你是对的。上面的dicts是一样的。实际上我的字典有这样的数字,而错误就在这些数字中。 Python 给出错误,因为它说 u'9.08' 不等于 '9.080' 有人可以帮忙吗?
-
那是因为它们不是数字而是字符串,内容不同。您是否尝试过将它们转换为
float()? -
嗨,我刚刚从所有内容中删除了尾随零。所以现在字典匹配了......我使用了 .rstrip("0") 并且它有效!感谢所有帮助,否则我会浪费时间从 dict 转换 Unicode 的东西
标签: python python-2.7 dictionary unicode