这就是我所做的,但这只能找到列表中的一个项目,我想打印出项目36的两个索引 请帮助这是我到目前为止所做的 如果我发布这个或我的问题的方式不明确我提前道歉 [代码]
def main():
mylist=[]
for i in range(20):
mylist.append(i*3)
mylist.append(36)
mylist.sort()
print mylist
binarySearch(mylist,0,len(mylist),36)
def binarySearch(thelist,lower,upper,item):
if upper<lower:
print 'item not in the list'
return
middle=(lower+upper)/2
if thelist[middle]<item:
lower=middle+1
binarySearch(thelist,lower,upper,item)
elif thelist[middle]>item:
upper=middle-1
binarySearch(thelist,lower,upper,item)
else:
print 'the item was found at index ',thelist[middle],middle
return
main()
答案 0 :(得分:0)
你可以创建一个函数来处理它,并返回一个索引列表而不是一个整数:
def check_for_number_around_index(index, sorted_list):
indices = [index]
i = index - 1
while(i >= 0 and sorted_list[i] == sorted_list[index]):
indicies.append(i)
i = i - 1
i = index + 1
while( i < len(sorted_list) and sorted_list[i] == sorted_list[index]):
indicies.append(i)
i = i + 1
return indicies