在Python中反转列表

2024-06-08 08:57:50 发布

您现在位置:Python中文网/ 问答频道 /正文

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?在


Tags: 函数name列表returnisdefnotlist
3条回答

只需反向使用内置函数

>>> reversed(my_list)

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

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

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

[::-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))

相关问题 更多 >