我真的需要帮助我的程序启动此功能的位置。这基本上就是我要做的事情!
它有两个参数......第一个参数是表示名称的字符串。第二个参数是按字母顺序排列的字符串列表。
该函数返回一个整数,指示名称列表中的位置或索引,这样如果您将给定的名称字符串插入该索引的列表中,该列表仍将按字母顺序排列。
我试着在另一个地方询问我相信但是我说这有点不对。我是新来的,所以不太确定在网站上工作!
感谢您的帮助,非常感谢!以下是我开始运作的方式:
def find_position(name, stringslist):
for line in stringslist:
newlist = line.split(",")
if newlist[0] =
该函数不会插入名称,也不会更改任何当前名称。它只返回应插入新名称的位置。
当前文件中的数据在每一行都设置如下:
名称,数据,数据 黄鳍,4.05,17.0
再次感谢你!
答案 0 :(得分:1)
您可以使用O(n)时间复杂度的朴素线性搜索:
def find_position(s, l):
for i, e in enumerate(l):
if s <= e:
return i
return len(l)
或带有bisect
模块的O(log n)算法:
def find_position(s, l):
from bisect import bisect_left
return bisect_left(l, s)
如果你不能使用bisect
模块,可以通过实现binary search来模仿其功能,但如果你不使用大型列表,算法的效率可能微不足道名字。