Python插入排序实现中如何去除输出列表的逗号与方括号
问题原因
你调用str(arr)时会直接将整个列表转为带方括号、逗号的字符串格式(比如[2, 4, 6, 8, 8]),此时再执行join只会遍历这个字符串的单个字符做拼接,无法实现按列表元素拼接的需求。
解决方案
你需要先将列表中每个数值元素单独转为字符串类型,再用空格作为分隔符执行join操作,正确写法为:
' '.join(map(str, arr))
同时你的原代码还存在缩进错误、重复逻辑判断的问题,修正后的完整可运行代码如下:
def insertionSort1(n, arr): for i in range(1, len(arr)): temp = arr[i] k = i while k > 0 and temp < arr[k-1]: arr[k] = arr[k-1] k -= 1 # 移动元素后打印当前数组 print(' '.join(map(str, arr))) # 找到插入位置后赋值 arr[k] = temp # 打印最终排序完成的数组,不需要可删除 print(' '.join(map(str, arr))) if __name__ == '__main__': n = int(input().strip()) arr = list(map(int, input().rstrip().split())) insertionSort1(n, arr)
使用你提供的输入示例运行以上代码,即可得到完全符合预期的空格分隔数值输出。
内容的提问来源于stack exchange,提问作者Hemananth
相关产品推荐
相关产品推荐

