试图从嵌套列表理解中获取非嵌套列表

时间:2020-04-20 18:53:06

标签: python-3.x list-comprehension

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 :(得分:0)

多亏了史蒂文·鲁姆巴尔斯基(Steven Rumbalski),我现在才知道删除内部方括号可以使我得到想要的单层列表。

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]