如何从 print(string, end=“, ”) 中删除最后一个逗号

新手上路,请多包涵

我的 forloop 输出是

string = ""
for x in something:
   #some operation
   string =  x += string

print(string)

5
66
777

我使用下面的代码让它们在同一行

print(string, end=", ")

然后我得到

5, 66, 777,

我希望最终结果是

 5, 66, 777

我如何更改代码 print(string, end=", ") 以便最后没有 ,

上面的字符串是用户输入生成的,我可以 12,3, 45, 98798, 45

到目前为止我已经尝试过

print(string[:-1], end=", ")                   #result = , 6, 77,
print((string, end=", ")[:-1])                 #SyntaxError: invalid syntax
print((string, end=", ").replace(", $", ""))   #SyntaxError: invalid syntax
print(", ".join([str(x) for x in string]))     # way off result 5
                                                                6, 6
                                                                    7, 7, 7
    print(string, end=", "[:-1])                  #result 5,66,777,(I thought this will work but no change to result)
   print(*string, sep=', ')                          #result 5
                                                             6, 6
                                                             7, 7, 7

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 user input
twenty five, four, nine

得到

25, 4, 9, #(that stupid comma in the end)

原文由 Samir Tendulkar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

您可以在 for 循环中构建一个字符串列表,并使用 join 打印后记:

 strings = []

for ...:
   # some work to generate string
   strings.append(sting)

print(', '.join(strings))

_或者_,如果您的 something 具有明确定义的长度(即您可以 len(something) ),您可以在最终情况下选择不同的字符串终止符:

 for i, x in enumerate(something):
   #some operation to generate string

   if i < len(something) - 1:
      print(string, end=', ')
   else:
      print(string)

基于真实示例代码的更新:

拿这段代码:

 value = input("")
string = ""
for unit_value in value.split(", "):
    if unit_value.split(' ', 1)[0] == "negative":
        neg_value = unit_value.split(' ', 1)[1]
        string = "-" + str(challenge1(neg_value.lower()))
    else:
        string = str(challenge1(unit_value.lower()))

    print(string, end=", ")

并按照上面的第一个建议,我得到:

 value = input("")
string = ""
strings = []
for unit_value in value.split(", "):
    if unit_value.split(' ', 1)[0] == "negative":
        neg_value = unit_value.split(' ', 1)[1]
        string = "-" + str(challenge1(neg_value.lower()))
    else:
        string = str(challenge1(unit_value.lower()))

    strings.append(string)

print(', '.join(strings))

原文由 Joshua R. 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果您可以先构造一个字符串列表,则可以在 print 中使用序列解包并使用 sep 而不是 end

 strings = ['5', '66', '777']

print(*strings, sep=', ')

5, 66, 777

原文由 jpp 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题