如何删除最后打印的字符? Python 3

时间:2018-10-10 00:36:21

标签: python python-3.x

我想删除正在打印的'<'和最后一个''之前的',但是我不确定如何删除。

这就像我在重复打印命令,但我希望要打印的最后一个元素遵循不同的命令。

a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
for i in a:
  if i < 5:
    print(i, end=' ,')
print('<', end=' ')
for i in a:
  if i > 5:
    print(i, end=' ,')

正在打印的内容:

1 ,1 ,2 ,3 ,< 8 ,13 ,21 ,34 ,55 ,89 ,

我要删除那些多余的逗号。

5 个答案:

答案 0 :(得分:1)

您可以对sep使用带有print参数的生成器表达式来打印' ,'作为分隔符而不是结束字符串。

更改:

for i in a:
  if i > 5:
    print(i, end=' ,')

收件人:

print(*(i for i in a if i > 5), sep=' ,', end='')

答案 1 :(得分:1)

有点冗长,但有效:

 >>> a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
 >>> ", ".join(str(n) for n in a if n < 5) + " < " + ", ".join(str(n) for n in a if n >= 5)
'1, 1, 2, 3 < 5, 8, 13, 21, 34, 55, 89'

此字符串将字符串连接起来,并利用str.join()来巧妙地处理此类逗号分隔的序列

答案 2 :(得分:0)

您可以在迭代时删除数组的最后一项,然后仅在最后打印最后一个元素。

a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
for i in a[:-1]:    # Iterate to n-1 element
  if i < 5:
    print(i, end=' ,')
print('<', end=' ')
for i in a[:-1]:    # Iterate to n-1 element
  if i > 5:
    print(i, end=' ,')
print(a[-1])        # Print last element

答案 3 :(得分:0)

您可以使用str.join方法将一堆字符串组合成一个字符串,并用调用的字符串分隔开。这样一来,您就可以用逗号分隔数字,而不必在每个循环的末尾添加一个额外的数字。

这是我一行完成全部操作的方法:

print(" ,".join(str(n) for n in a if n < 5), "<", " ,".join(str(n) for n in a if n > 5))

答案 4 :(得分:0)

使用.join(), .strip(), .replace()

s = ''.join(str(a))
s = s.strip('[]')
s = s.replace(' 5,',' <')
print(s)
# 1, 1, 2, 3, < 8, 13, 21, 34, 55, 89