したがって、2つの文字列変数を==
と比較しようとしていて、なんらかの理由で機能しません。彼らは明らかに等しいとき、それはFalse
を返す理由たとえば、このコードPythonの==演算子と等しいかどうかの文字列を比較する
print(dictionary[0])
print("A")
print(dictionary[0] == "A")
プリントアウト
A
A
False
は、私は理解していません。
したがって、2つの文字列変数を==
と比較しようとしていて、なんらかの理由で機能しません。彼らは明らかに等しいとき、それはFalse
を返す理由たとえば、このコードPythonの==演算子と等しいかどうかの文字列を比較する
print(dictionary[0])
print("A")
print(dictionary[0] == "A")
プリントアウト
A
A
False
は、私は理解していません。
は
dictionary = {0:"A"}
print(dictionary[0])
print("A")
print(dictionary[0] == "A")
result:
A
A
True
可能な理由は、多分それはスペースを削除したり、文字列len(dictionary[0])
print(dictionary[0].strip() == "A")
print len(dictionary[0])
あなたにの長さをチェックするためにstrip()
を使用しようと スペースが含まれている、長さこの状況にある可能性があります。
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")
辞書に保存されている内容を正確に把握してください。 2つのオブジェクトが等価であるのと同じ方法で印刷されるためではありません。あなたは、これはそれについての詳細を知るために作ってみることができます
:
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