【问题标题】:Python - Remove comma and square bracket from list in python - Insertion sortPython - 从 python 中的列表中删除逗号和方括号 - 插入排序
【发布时间】:2021-08-01 12:30:02
【问题描述】:

我已经获得了插入排序的输出,但是 (' '.join(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]:
        if(temp<arr[k-1]):
            arr[k]=arr[k-1]
            k-=1
            arr[k]=arr[k+1]
            sortedarr=''.join(str(arr))
            print(sortedarr) 
          
        if(temp>arr[k-1]):
            arr[k]=temp
            sortedarr=(''.join(str(arr)))
            print(sortedarr)      

if __name__ == '__main__':
n = int(input().strip())

arr = list(map(int, input().rstrip().split()))

insertionSort1(n, arr)

输入:

5
2 4 6 8 3

预期输出:

2 4 6 8 8
2 4 6 6 8
2 4 4 6 8
2 3 4 6 8

实际输出:

[2, 4, 6, 8, 8]
[2, 4, 6, 6, 8]
[2, 4, 4, 6, 8]
[2, 3, 4, 6, 8]

【问题讨论】:

    标签: python string list join insertion-sort


    【解决方案1】:

    您可以像这样直接打印空格分隔的列表项,而不是 join()

    lst = [1, 2, 4, 8]
    print(*lst)
    
    1 2 4 8
    

    在您的代码中删除 join() 语句并使用

    print(*sortedarr)

    您得到逗号和方括号的原因是因为您将整个列表转换为字符串并使用连接,而不是将列表中的项目转换为字符串并连接 .

    例如:

    arr = list(range(6))
    
    print(''.join(str(arr)))
    arr = [str(i) for i in arr]
    print(' '.join(arr))
    
    Output
    
    [0, 1, 2, 3, 4, 5]
    0 1 2 3 4 5
    

    【讨论】:

      猜你喜欢
      • 2016-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多