[英]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.