2024-04-24 16:06:20 发布
网友
谁能给我解释一下下面的例子吗? 如何从for循环中获取所有元素,而不仅仅是最后一个?你知道吗
class Deck: def __init__(self): self.cards = [Card(SUITS[i], RANKS[j]) for i in range (0, len(SUITS)) for j in range (0, len(RANKS))]
这是一个list comprehension。基本上是一对嵌套for循环:
class Deck: def __init__(self): self.cards = [] for i in range(0, len(SUITS): for j in range(0, len(RANKS): self.cards.append(Card(SUITS[i], RANKS[j]))
你有一个嵌套循环的列表。可以翻译为:
self.cards = [] for i in range(0, len(SUITS)): for j in range(0, len(RANKS)): self.cards.append(Card(SUITS[i], RANKS[j]))
不过,通过直接在SUITS和RANKS上循环,可以进一步简化:
SUITS
RANKS
self.cards = [Card(suit, rank) for suit in SUITS for rank in RANKS]
或者可以使用^{}替换嵌套循环:
from itertools import product self.cards = [Card(suit, rank) for suit, rank in product(SUITS, RANKS)]
这有点让人困惑,但可以翻译成以下伪代码:
self.cards = []; for i in range (0, len(SUITS)) for j in range (0, len(RANKS)) self.cards.append(Card(SUITS[i], RANKS[j]));
基本上是一个循环中的一个循环。你知道吗
在我的例子中更容易阅读。你知道吗
这是一个list comprehension。基本上是一对嵌套for循环:
你有一个嵌套循环的列表。可以翻译为:
不过,通过直接在
SUITS
和RANKS
上循环,可以进一步简化:或者可以使用^{} 替换嵌套循环:
这有点让人困惑,但可以翻译成以下伪代码:
基本上是一个循环中的一个循环。你知道吗
在我的例子中更容易阅读。你知道吗
相关问题 更多 >
编程相关推荐