如何从python中的打印输出中删除字符

时间:2014-04-18 07:25:02

标签: python list python-3.x

我正在尝试从另一个打印声明中删除打印声明中打印出的多余字符。

以下是我的代码:

print(addedlist)  #addedlist = [9,5,1989,1,2,3,4,5,6,7,8,9]

for x in range(0, len(addedlist)):
    print('%d->'%addedlist[x],end="")

print('\n')

输出如下:

[9, 5, 1989, 1, 2, 3, 4, 5, 6, 7, 8, 9]
9->5->1989->1->2->3->4->5->6->7->8->9->  

我正在尝试删除最后->个字符。我试过了:

print(addedlist)  #addedlist = [9,5,1989,1,2,3,4,5,6,7,8,9]

for x in range(0, len(addedlist)):
     print('%d->'%addedlist[x],end="")

print('\b\b\n')

但它不起作用。

我将如何完成这项工作?

修改

只是一些澄清,我知道我可以更改我的原始打印声明以更正确地打印它以避免尾随-> ...我正在解决如何删除尾随' - >'这一旦犯了错误

2 个答案:

答案 0 :(得分:5)

我注意到你想玩回车'命令。首先,您需要学习'\b'(将活动位置移动到上一个位置)和'\r'(将活动位置移动到行首)适用于当前活动行
我认为你正在研究命令行解释器;您明确按Enter键进入下一行。
在命令行解释器上使用;,如下所示:

>>> print("abb", end=""); print("\b\bcc")
acc
>>> print("a->", end=""); print("\b\b  ")
>>> a

如果您使用的是某些脚本,那么您的代码应该可以运行,请参阅:

Upload$ cat s.py
print ("abcd->", end="")
print ("\b\b  ")
Upload$ python3.2 s.py
abcd    # notice -> is removed  

但这没有太大用处,正确的方法是Aशwini चhaudharyanswer中显示的内容。

编辑:我发现你在代码中出错了

   print('%d->' % addedlist[x], end="")    
print('\b\b\n')

您使用'\b'将有效位置移至上一个位置,但您不会覆盖"->",只需输出'\n'即可将光标移至下一行,应该纠正你的代码如下。

  print('%d->' % addedlist[x], end="")    
print('\b\b   \n')
 #         ^^^^  /b then overwrite with spaces 

在Linux shell上以$ python scriptname.py运行(对于命令行Python的解释器,您可以使用like code I written,只需播放,使用str.join或使用sep print()中的参数。

答案 1 :(得分:4)

使用str.join

>>> s = [9,5,1989,1,2,3,4,5,6,7,8,9]
>>> print ('->'.join(map(str, s)))
9->5->1989->1->2->3->4->5->6->7->8->9

或更好print() sep'->'

>>> print(*s, sep='->')
9->5->1989->1->2->3->4->5->6->7->8->9