電子メールをアルファベット順に並べ替えた後、バイナリ検索を使用してリストからユーザー入力の電子メールを検索しようとするコードがあります。しかし、私はこれを長続きする方法についていないし、私が得たエラーや解決方法については何の解決策も見つけられていない。ここに私のコードはバイナリ検索でリストを検索する
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)
である私は現在、取得エラーです:
elif logindata[Midpoint] > ItemSought:
TypeError: unorderable types: list() > str()
あなたはおそらく ' –
' logindata [Midpoint] [0] '、私は想像していないでしょう –
@PatrickHaugh Yep。あなたはおそらく' elif logindata [Midpoint] [0]修正されました。 –