我得到了以下代码:

def two_pair(ranks):
    """If there are two pair, return the two ranks as a
    tuple: (highest, lowest); otherwise return None."""
    pair = kind(2,ranks)
    lowpair = kind(2, list(reversed(ranks)))
    if pair and lowpair != pair:
        return (pair,lowpair)
    else:
        return None


在lowpair变量中,为什么需要声明list()?您为什么不能只说reversed(ranks)ranks是一个列表。它不是已经暗示了吗?

最佳答案

reversed返回一个迭代器,而不是列表。我们需要将其明确转换为列表,除非我们只想对其进行迭代。

a = [1, 2, 3]
print reversed(a)        # <listreverseiterator object at 0x7fc57d746790>


这就是为什么我们必须使用list来获取实际的反向列表,像这样的原因

print list(reversed(a))  # [3, 2, 1]

关于python - Python中列表的倒序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21566957/

10-10 22:29