簡體   English   中英

'type'類型的對象沒有len()

[英]object of type 'type' has no len()

'type'類型的對象沒有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")

if search(list,n):

應該讀

if search(li,n):

list是內置類型的名稱。

另外,索引到列表的正確方法是使用方括號,而不是括號。

最后,為了使二分查找算法起作用,需要對列表進行排序。

您必須使用方括號來獲取列表項:

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")

您是否要對未排序的列表進行二進制搜索? 好吧,顯然,那是行不通的。 至於實際檢查列表中是否存在給定值,在現實生活中,在python中,只需使用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM