我需要一些帮助,因为每当我输入一个负数时,列表会将其解释为一个单独的元素,因此一旦开始排序,它就会将所有负号放在开头。代码的最终目标是在不使用默认排序函数的情况下对 2 个合并列表进行排序。此外,如果有更好的方法来摆脱列表中的空格,我将不胜感激,因为目前我必须将列表转换为字符串并替换/去除空格导致的额外元素。
list1 = list(input())
list2 = list(input())
mergelist = list1 + list2
print(mergelist)
def bubble_sort(X):
nums = list(X)
for i in range(len(X)):
for j in range(i+1, len(X)):
if X[j] < X[i]:
X[j], X[i] = X[i], X[j]
return X
mergelist = bubble_sort(mergelist)
strmergelist = str(mergelist)
strmergelist = strmergelist.replace("'", '')
strmergelist = strmergelist.replace(",", '')
strmergelist = strmergelist.strip('[]')
strmergelist = strmergelist.strip()
print(strmergelist)
没有否定的列表的输出是:
1 2 3 4 4 5 5
但是,如果是负数,则变为:
- - - - 1 2 3 3 4 4 5
当我输入任何负数时,我第一个检查列表合并的打印函数看起来像这样(忽略空格,因为我稍后尝试删除它们):
['1', ' ', '-', '2', ' ', '3', '3', ' ', '-', '4', ' ', '-', '4', ' ', '-', '5']
慕村9548890
相关分类