我想问一个关于订购清单的问题。
我被要求创建一个不使用任何Python模块就将整数插入有序列表的函数。
这是我在下面创建的:
def insert_in_order(num, ordered_list):
position = 0
for item in ordered_list:
if num > item:
position += 1
ordered_list[position:position] = [num]
return ordered_list
这个功能很好。
观察到以下输出:
insert_in_order(3, [1, 2, 4, 5])
>> [1, 2, 3, 4, 5]
olist = list(range(0, 20, 3))
insert_in_order(8, olist)
>> [0, 3, 6, 8, 9, 12, 15, 18]
然后,我被要求使用该函数insert_in_order
对无序列表进行排序,例如[91, 80, 34, 4]
,我尝试了多种方式。
def insert_sort(unordered_list):
ordered_list = []
for item in unordered_list:
ordered_list = insert_in_order(item, unordered_list)
但是,这并没有产生我想要的结果,因为它不停地通过将每个项目多次添加到列表中来不断前进。
如何使用原始功能并修改代码中的行以排序无序列表?
def insert_sort(unordered_list):
ordered_list = []
for item in unordered_list:
ordered_list = insert_in_order(item, ordered_list)
return ordered_list
现在仔细看一下,找出与您的代码不同的地方;-)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句