首页 > 解决方案 > Python for 循环和列表

问题描述

我在代码中有以下内容;我忘记了我在哪里得到它或它叫什么(我是 Python 新手):

deck = [Card(x, y) for x in cards for y in suits]

从上面的代码中,我试图将多个牌组创建到一个列表中,以便用户输入牌组的数量。我一直在尝试这样做:

decks = 2
i = 0
while i < decks:
    deck = [Card(x, y) for x in cards for y in suits]
    i += 1

但这只会覆盖当前的甲板变量。我也试过:

decks = 2
deck = []
i = 0
while i < decks:
    deck.append(Card(x, y) for x in cards for y in suits)
    i += 1

但是当我打印卡片组的内容时,我只会得到<generator object <genexpr> at 0x04562C30>和作为输出。<generator object <genexpr> at 0x04562BF0>我究竟如何实现我想要的以及两个 for 循环在创建列表时如何工作?

我尝试了以下迭代列表的成员;不起作用:

for x in deck:
    for j in x:
        print(str(deck[x][j]))

标签: pythonlistlist-comprehension

解决方案


尝试这个:

deck.append([Card(x, y) for x in cards for y in suits])

这将是一个列表列表。但我认为该列表中的所有项目都将相同。

编辑:

for x in deck:
    for j in x:
        print(j) # or do what you want, j is that inner element

推荐阅读