我有一个元组列表,每个元组包含有关员工的信息.
EmpList= [('1253', 'Fred'), ('889', 'Sue'), ('1389', 'Sally')]
Run Code Online (Sandbox Code Playgroud)
我想按照他们的员工编号按顺序安排他们.使用sorted,我的第一个倾向,不起作用,因为数字不是整数.于是
sorted(EmpList)
[('1253', 'Fred'), ('1389', 'Sally'), ('889', 'Sue')]
Run Code Online (Sandbox Code Playgroud)
当我想要的时候
[('889', 'Sue'), ('1253', 'Fred'), ('1389', 'Sally')]
Run Code Online (Sandbox Code Playgroud) 我编写了以下函数来实现我自己的二分查找
def bisect(input, target):
mid = len(input)/ 2
if len(input) == 1:
if input[0] == target:
return 1
else:
return None
elif input[mid] > target:
bisect(input[:mid], target)
elif input[mid] <= target:
bisect(input[mid:], target)
Run Code Online (Sandbox Code Playgroud)
我知道我的实现已经关闭,但我对理解这里的递归堆栈更加好奇。
当我调用时bisect(['d','e'], 'd'),我的函数应该返回
bisect(['d'], 'd')
Run Code Online (Sandbox Code Playgroud)
但它返回无。此外,当我bisect(['d'], 'd')直接调用时 ,我得到了正确的 0 值。这怎么可能?