在Python中反转列表

时间:2013-07-11 11:20:59

标签: python list reverse

def manualReverse(list):
    return list[::-1]

    def reverse(list):
        return list(reversed(list))   

list = [2,3,5,7,9]

print manualReverse(list)
print reverse(list)

我刚开始学习Python。任何人都可以帮我解决以下问题吗?

1.如何list[::-1]返回reversed列表?

2.为什么第二个函数会抛出NameError: name 'reverse' is not defined

3 个答案:

答案 0 :(得分:13)

[::-1]相当于[::1],但不是从左到右,而是从右到左。如果为负一步,则只返回相反顺序的所有元素。整个语法称为Python Slice Notation

'reverse' is not defined的原因是因为您没有全局定义它。它是manualReverse函数中的本地名称。您可以取消缩进该函数,使其成为全局函数。

def manualReverse(list):
    return list[::-1]

def reverse(list):
    return list(reversed(list))   

顺便说一下,列出名单list绝不是一个好主意。它将覆盖内置类型,包括您依赖的函数(list(reversed(list))

答案 1 :(得分:2)

list[::-1]使用切片表示法并以相反的顺序返回所有元素。 Explain Python's slice notation 以下是对示例的详细解释 - 它将回答这个问题和更类似的问题。

def reverse(list)的缩进使其仅在manualReverse(list)内可见。 如果你是unindent,它将在全球范围内可见。

答案 2 :(得分:0)

只需使用内置函数反转

>>> reversed(my_list)

请参阅http://docs.python.org/2/library/functions.html?highlight=reversed#reversed