Home > front end >  How to remove the last comma when printing a list of strings?
How to remove the last comma when printing a list of strings?

Time:10-30

This is my code

houses = ['C', 'D', 'H', 'S']
ranks = ['A','2','3','4','5','6','7','8','9','10','J','Q','K']
deck = []

for house in houses:
    for rank in ranks:
        deck.append(f"{rank}-{house}")

for i in range(13):
    print(deck[i], end=",")`

The output is supposed to be:

A-C,2-C,3-C,4-C,5-C,6-C,7-C,8-C,9-C,10-C,J-C,Q-C,K-C

but I got

A-C,2-C,3-C,4-C,5-C,6-C,7-C,8-C,9-C,10-C,J-C,Q-C,K-C,

How do I remove the last comma?

CodePudding user response:

Here's another alternative

houses = ['C', 'D', 'H', 'S']
ranks = ['A','2','3','4','5','6','7','8','9','10','J','Q','K']
deck = []

for house in houses:
    for rank in ranks:
        deck.append(f"{rank}-{house}")

print(*deck[:13], sep=',')

CodePudding user response:

Might suggest combining str.join and itertools.product as below:

from itertools import product


decks = [
    ','.join(
        '-'.join((rank, house)) for (house, rank) in product(house, ranks)
    )
    for house in houses
]
for deck in decks:
    print(deck)

Output:

A-C,2-C,3-C,4-C,5-C,6-C,7-C,8-C,9-C,10-C,J-C,Q-C,K-C
A-D,2-D,3-D,4-D,5-D,6-D,7-D,8-D,9-D,10-D,J-D,Q-D,K-D
A-H,2-H,3-H,4-H,5-H,6-H,7-H,8-H,9-H,10-H,J-H,Q-H,K-H
A-S,2-S,3-S,4-S,5-S,6-S,7-S,8-S,9-S,10-S,J-S,Q-S,K-S

CodePudding user response:

The only problem is the last part of your code, where you are looping over the deck & printing it.

First of all, it's the best to use len(deck) instead of a constant number.

Lastly just subtract 1 from the amount you are looping & print the last one separately.

So your fixed code would be.

for i in range(len(deck)-1):
  print(deck[i], end=",")

print(deck[-1])
  • Related