Python 列表的搜索列表
我有一份清单,清单上有:Python 列表的搜索列表,python,list,Python,List,我有一份清单,清单上有: [['1','Alex'],['2','Dwayne'],['3','George'],['4','Jake']] 我使用二进制搜索来搜索列表,并根据用户输入返回一个输出 基本上,用户需要输入由单个列表中的第二个元素表示的名称,然后返回第一个元素 userinput = Dwayne output = 2 这是我的密码: lst = [['1','Alex'],['2','Dwayne'],['3','George'],['4','Jake']] name =
[['1','Alex'],['2','Dwayne'],['3','George'],['4','Jake']]
我使用二进制搜索来搜索列表,并根据用户输入返回一个输出
基本上,用户需要输入由单个列表中的第二个元素表示的名称,然后返回第一个元素
userinput = Dwayne
output = 2
这是我的密码:
lst = [['1','Alex'],['2','Dwayne'],['3','George'],['4','Jake']]
name = input("Enter name:")
def binarySearch(l,t):
low = 0
high = len(l)-1
while low<= high:
mid = (low+high)//2
if l[mid][1] == t:
return [mid][0]
elif l[mid][1]>t:
high = mid-1
else:
low = mid+1
return -1
result = binarySearch(lst,name)
print(result)
lst=['1'、'Alex']、['2'、'Dwayne']、['3'、'George']、['4'、'Jake']
名称=输入(“输入名称:”)
def二进制搜索(l,t):
低=0
高=透镜(l)-1
虽然低:
高=中1
其他:
低=中+1
返回-1
结果=二进制搜索(lst,名称)
打印(结果)
我得到0作为输出,这不是我想要的,所以我需要一些关于二进制搜索的提示。通常,用整数对列表进行二进制搜索是可以的,但我不确定字符串。在这个
if
语句中:
if l[mid][1] == t:
return [mid][0]
将
return[mid][0]
更改为return l[mid][0]
,因为要返回此if
语句中列表l[mid]
中元素l[mid]
中的第一个条目:
if l[mid][1] == t:
return [mid][0]
将
return[mid][0]
更改为return l[mid][0]
,因为您希望返回列表l
中元素l[mid]
中的第一个条目,我感觉0和1索引在这里交换。您正在比较名称并返回索引。另外还有一个输入错误return[mid][0]
刚刚返回mid
,很奇怪。我觉得0和1索引在这里互换了。您正在比较名称并返回索引。另外还有一个输入错误return[mid][0]
刚好返回mid
,很奇怪。