Dies ist die vereinfachte Version meines Problems.Warum geben identische Strings false mit == zurück?
QA = open('Qestions and answers.txt')
Q = []
A = []
for line in QA:
(first,second) = line.split(';')
Q.append(first)
A.append(second)
QA.close()
print(A[0], A[1])
print(A[0] == '1981')
print(A[1] == 'Feb')
print(str(A[0]) == '1981') # I even tried str
print(str(A[1]) == "Feb")
Ausgang:
1981
Feb
False
False
False
False
Es gibt wahrscheinlich einige Leerzeichen drin (oder andere Zeichen, die Sie nicht so leicht feststellen können, wenn Sie die Saiten drucken). –
Die Antwort ist * "sie nicht" *. Ihre Saiten sind ungleich, versuchen Sie z.B. 'print (repr (A [0]), repr ('1981'), um dies deutlich zu sehen. – jonrsharpe
Sehen Sie, wie sich die Ausgabe von' print (A [0], A [1]) 'über drei Zeilen erstreckt? da sind zwei '\ n' drin! –