Skip to content
Advertisement

How to remove last comma from print(string, end=“, ”)

my output from a forloop is

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

print(string)

5
66
777

I use the below code to have them on the same line

print(string, end=", ")

and then I get

5, 66, 777,

I want the final result to be

 5, 66, 777

How do I change the code print(string, end=", ") so that there is no , at the end

The above string is user input generated it can me just 1 or 2,3, 45, 98798, 45 etc

So far I have tried

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 

gets

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

Advertisement

Answer

You could build a list of strings in your for loop and print afterword using join:

strings = []

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

print(', '.join(strings))

alternatively, if your something has a well-defined length (i.e you can len(something)), you can select the string terminator differently in the end case:

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

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

UPDATE based on real example code:

Taking this piece of your code:

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=", ")

and following the first suggestion above, I get:

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))
User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement