所以我试图比较两个字符串变量与==
,它不工作的原因。例如该代码在python中比较字符串==与==运算符
print(dictionary[0])
print("A")
print(dictionary[0] == "A")
打印出
A
A
False
我不明白为什么它返回False
时,他们显然是相等的。
所以我试图比较两个字符串变量与==
,它不工作的原因。例如该代码在python中比较字符串==与==运算符
print(dictionary[0])
print("A")
print(dictionary[0] == "A")
打印出
A
A
False
我不明白为什么它返回False
时,他们显然是相等的。
它适用于我
dictionary = {0:"A"}
print(dictionary[0])
print("A")
print(dictionary[0] == "A")
result:
A
A
True
可能的原因是长度,也许它包含空格 尝试使用strip()
删除空间或检查字符串len(dictionary[0])
print(dictionary[0].strip() == "A")
print len(dictionary[0])
您的长度可能是在这种情况下
class Alike(object):
def __eq__(self, obj):
"""called on =="""
return False
def __repr__(self):
"""called on print"""
return "A"
a_obj = Alike()
print(a_obj, a_obj == "A")
请务必确切知道您的字典中存储了什么。这不是因为两个对象以相同的方式打印。
你可以尝试让这多了解一下:
print type(dictionary[0]), len(dictionary[0])
无论你的列表中包含有在年底或项目数0空格的字符串不是字符串,而是一个目标,那就是打印为“A”。
class hex_number:
def __init__(self,number):
self.number = number
def __repr__(self):
return '%X' % self.number
d = {0:'A ', 1:hex_number(10)}
for i in range(2):
print '{}: <{}>; <{}> == <{}>? => {}'.format(i,d[i],d[i],"A",d[i]=="A")
是您的单词排序列表? – FallAndLearn
是的,我认为这个问题不是正确比较单词 –
尝试'print(repr(dictionary [0]))',你可能会在'dictionary [0]'中隐藏一些额外的字符。 – Holt