Python 逆向工程一个简单的列表对其规则形式的理解

Python 逆向工程一个简单的列表对其规则形式的理解,python,Python,我正在尝试对下面的列表进行反向工程,但我的尝试只生成一张卡。我错过了什么 ranks = [_ for _ in range(2, 11)] + ['JACK', 'QUEEN', 'KING', 'ACE'] suits = ['SPADE', 'HEART ', 'DIAMOND', 'CLUB'] def get_deck(): return [[rank, suit] for rank in ranks for suit in suits] 我的尝试: def get_dec

我正在尝试对下面的列表进行反向工程,但我的尝试只生成一张卡。我错过了什么

ranks = [_ for _ in range(2, 11)] + ['JACK', 'QUEEN', 'KING', 'ACE']
suits = ['SPADE', 'HEART ', 'DIAMOND', 'CLUB']

def get_deck():
    return [[rank, suit] for rank in ranks for suit in suits]
我的尝试:

def get_deck():
    for rank in ranks:
        for suit in suits:
            return [rank, suit]

您可以通过在列表末尾添加
[::-1]
来反转列表。所以你可以做你的列表理解,然后把它颠倒过来。或者只需调用列表中的
reversed

您可以通过在列表末尾添加
[:-1]
来反转列表。所以你可以做你的列表理解,然后把它颠倒过来。或者只需在列表中调用
reversed

return
表示结束该函数的代码路径,并且可以选择返回单个值(该值当然可以是元组,因此可以通过一个值返回多个值)

如果您想编写生成器函数,
yield
是您的朋友:

def get_deck():
    for rank in ranks:
        for suit in suits:
            yield [rank, suit]
您还可以
get_deck
函数中构建一个列表,如:

def get_deck():
    result = []
    for rank in ranks:
        for suit in suits:
            result.append([rank,suit])
    return result
def get_deck():
结果=[]
对于等级中的等级:
对于套装:
结果。追加([rank,suit])

return result
return
表示结束该函数的代码路径,还可以选择返回单个值(该值当然可以是元组,因此可以通过一个值返回多个值)

如果您想编写生成器函数,
yield
是您的朋友:

def get_deck():
    for rank in ranks:
        for suit in suits:
            yield [rank, suit]
您还可以
get_deck
函数中构建一个列表,如:

def get_deck():
    result = []
    for rank in ranks:
        for suit in suits:
            result.append([rank,suit])
    return result
def get_deck():
结果=[]
对于等级中的等级:
对于套装:
结果。追加([rank,suit])

返回结果
你说的反向是什么意思?你说的反向是什么意思?您的意思是使用列表理解来反转列表吗?
return
将控制权返回给调用者,这显然发生在第一次迭代之后。您需要从一个空列表开始,
lst=[]
,然后在每次迭代中附加到该列表(而不是返回,使用
lst.append([rank,suit])
并在末尾返回列表。我的意思是将列表理解反向工程为其常规形式。反向是什么意思?反向列表理解是什么意思?你的意思是使用列表理解反向列表理解吗?
return
将控制权返回给调用者,这显然发生在第一次迭代之后。Yo你需要从一个空列表开始,
lst=[]
,然后在每次迭代中附加到该列表(而不是返回,使用
lst.append([rank,suit])
,并在末尾返回该列表。我的意思是将列表理解反向工程为其常规形式