Попытка получить не вложенный список из понимания вложенного списка - PullRequest
0 голосов
/ 20 апреля 2020
class Card:
def __init__(self, suit, value):
    self.suit = suit
    self.value = value
def __repr__(self):
    return f"{self.value} of {self.suit}"

class Deck:
    def __init__(self):
        suits = ["Clubs", "Diamonds", "Hearts", "Spades"]
        values = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"]
        self.cards = [[Card(val, itm) for itm in values] for val in suits] #ISSUE

my_deck = Deck()

my_deck.cards - это список, содержащий 4 списка. Есть все 52 карты, но я хочу простой список со всеми 52 картами там. Как я могу переписать строку с #ISSUE, чтобы она составляла обычный список вместо списка, содержащего 4 списка?

1 Ответ

0 голосов
/ 20 апреля 2020

Благодаря Стивену Румбальски я теперь знаю, что снятие внутренних квадратных скобок дает мне одноуровневый список, который я хотел.

self.cards = [[Card(val, itm) for itm in values] for val in suits] #ISSUE

Становится:

self.cards = [Card(val, itm) for val in suits for itm in values]
...