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])