python - Python - 从 python 中的列表中删除逗号和方括号 - 插入排序
问题描述
我已经获得了插入排序的输出,但是(' '.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]
解决方案
而不是 a join()
,您可以像这样直接打印空格分隔的列表项
lst = [1, 2, 4, 8]
print(*lst)
1 2 4 8
在您的代码中删除该join()
语句并使用
print(*sortedarr)
您得到逗号和方括号的原因是因为您将整个列表转换为字符串并使用 join而不是将列表中的项目转换为字符串并加入。
例如:
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