用于循环和列表的Python

用于循环和列表的Python,python,list,list-comprehension,Python,List,List Comprehension,我有以下代码;我忘了我从哪里得到它或者它叫什么(我是Python新手): 从上面的代码中,我尝试将多个组创建到一个列表中,以便用户输入组的数量。我一直在尝试这样做: decks = 2 i = 0 while i < decks: deck = [Card(x, y) for x in cards for y in suits] i += 1 试试这个: deck.append([Card(x, y) for x in cards for y in suits]) 这将

我有以下代码;我忘了我从哪里得到它或者它叫什么(我是Python新手):

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

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

deck.append([Card(x, y) for x in cards for y in suits])
这将是一个列表列表。但我认为所有的项目都将是相同的清单

编辑:


你应该改变这个

deck.append(Card(x, y) for x in cards for y in suits)
为此:

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

第二行将数据存储在列表中,然后将其追加。

为了完成,只需添加一个理解版本即可

decks = 2

deck = [[(x,y) for x in cards for y in suits] for i in range(decks)]

这称为列表理解。
deck.append([…])
?如何迭代内部列表的成员?我需要两个循环吗?是的,你需要两个循环来访问所有的循环,但是单独你可以
deck[I][j]
。i和j将是整数索引。您可以对它们进行迭代并按如下方式展开:
[l组中的成员对l组中的成员]
您可以编辑答案以包括如何迭代成员吗。我已经编辑了我的问题,但我尝试了什么,但它不起作用。当然,只是
print(j)
而不是
str(deck[x][j])
这会在一个列表中创建一个列表还是两个列表?在一个列表中创建两个列表。
for x in deck:
    for j in x:
        print(j) # or do what you want, j is that inner element
deck.append(Card(x, y) for x in cards for y in suits)
deck.append([Card(x, y) for x in cards for y in suits])
decks = 2

deck = [[(x,y) for x in cards for y in suits] for i in range(decks)]