我想删除正在打印的'<'和最后一个''之前的',但是我不确定如何删除。
这就像我在重复打印命令,但我希望要打印的最后一个元素遵循不同的命令。
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 ,
我要删除那些多余的逗号。
答案 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