'type'类型的对象没有len()

时间:2019-07-23 06:41:09

标签: python

“类型”类型的对象没有len()

这是我的代码:

 def search(li,n):
    l = 0
    u = len(li)-1
    while l <= u:
       mid = (l + u) //2
       if li(mid) == n:

          return True
       else :
            if li(mid) < n :
              l = mid
            else:
              u = mid

调用函数search()

这是列表:

li = [5,2,8,4,6,3,7,9]
n = 3

if search(list,n):
    print("Found")
else:
    print("Not Found")

3 个答案:

答案 0 :(得分:0)

The

if search(list,n):

应阅读

if search(li,n):

答案 1 :(得分:0)

您必须使用方括号来获取列表中的一项:

def search(li,n):
    l = 0
    u = len(li)-1
    while l <= u:
       mid = (l + u) //2
       if li[mid] == n:

          return True
       else :
            if li[mid] < n :
              l = mid
            else:
              u = mid

li = [5,2,8,4,6,3,7,9]
n = 3

if search(li,n):
    print("Found")
else:
    print("Not Found")

答案 2 :(得分:0)

您是否要对未排序的列表进行二进制搜索?好吧,显然,那是行不通的。至于实际检查列表中是否存在给定值,在现实生活中,在python中,只需使用:

if n in li: 
    print("Found") 
else: 
    print("Not Found")