Ich habe einen Code, der zuerst die E-Mails in alphabetischer Reihenfolge sortiert und dann versucht, die binäre Suche zu verwenden, um eine vom Benutzer eingegebene E-Mail aus einer Liste zu suchen. Ich habe jedoch schon so lange daran festgemacht, wie das zu tun ist, und habe keine Lösungen für den Fehler gefunden, den ich bekomme und wie ich ihn beheben kann. Hier ist mein CodeBinäre Suche, um eine Liste zu suchen
def BubbleSort(logindata):
NoSwaps = 1
N = len(logindata)
logindata = list(logindata)
while NoSwaps == 1:
Count = 1
NoSwaps = 0
for Count in range(N-1):
if logindata[Count] > logindata[Count+1]:
temp = logindata[Count]
logindata[Count] = logindata[Count+1]
logindata[Count+1]=temp
NoSwaps=1
return tuple(logindata)
def BinarySearch(logindata,ItemSought):
First=0
Last=len(logindata)-1
ItemFound = False
SearchFailed = False
while ItemFound == False or SearchFailed == False:
Midpoint = (First + Last) // 2
if logindata[Midpoint] == ItemSought:
ItemFound = True
print("Item Found")
break
elif logindata[Midpoint] > ItemSought:
Last = Midpoint - 1
else:
First = Midpoint + 1
if __name__ == "__main__":
logindata=["[email protected]","Password1"],["[email protected]","Password2"],["[email protected]","Password3"]
logindata=BubbleSort(logindata)
print(logindata)
ItemSought=input("Enter username")
BinarySearch(logindata,ItemSought)
Der Fehler, den ich zur Zeit erhalten ist:
elif logindata[Midpoint] > ItemSought:
TypeError: unorderable types: list() > str()
Wahrscheinlich möchten Sie 'elif logindata [Mittelpunkt] [0]> ItemSought:' –
'logindata [Mittelpunkt] [0]', nicht 1 würde ich mir vorstellen –
@PatrickHaugh Yep. korrigiert. –