0

I am a beginner to python and for all i know, i could be doing this completely wrong. I am trying to make a blackjack game and was just wondering if there was any way to generate items that are part of a class using a list of values and a for loop based on the items in the list. So far, I have made it print each of the card values but am struggling to assign them to an object in the Card class.

suits = ['Spades', 'Clubs', 'Hearts', 'Diamonds']
values = [2,3,4,5,6,7,8,9,10,'Ace','Jack','Queen','King']

class Card(object):

    def __init__(self, suit, value):
        self.suit = suit
        self.value = value

As i mentioned earlier, i have made the for loop that i'm using print the values that i want to be assigned to objects:

for cardSuit in suits:
    for cardValue in values:
        print cardSuit, cardValue

As shown bellow, i am trying to create an instance of an object with the Card class using the name of the suit and value of a card and then assign the values of cardSuit and cardValue to the object.

for cardSuit in suits:
    for cardValue in values:
        cardSuit,cardValue = Card(suit = cardSuit,value = cardValue)

Any advice or improvements i can do here would be much appreciated since i am trying to teach myself how to use python and am stuck with this one.

1 Answer 1

1

You can try this:

cards = [Card(cardSuit, cardValue) for cardSuit in suits for cardValue in values]

Also,You need not to use a class, namedtuple may be better

from collections import namedtuple
Card = namedtuple('Card', ['suit', 'value'])
cards = [Card(cardSuit, cardValue) for cardSuit in suits for cardValue in values]
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.