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
,很奇怪。