【问题标题】:list in reverse order python [duplicate]以相反的顺序列出python [重复]
【发布时间】:2018-02-06 08:54:59
【问题描述】:

我应该如何修复此代码以获得与序列 s 顺序相反的列表?

def reverse(s):
    """Return a list that is the reverse of sequence s.

    >>> reverse([1,2,3])
    [3, 2, 1]
    """
    rs = []
    for element in s:
        rs = s + rs
    return rs

【问题讨论】:

  • 快速修复:rs = [element] + rs -- 但有更有效的方法来实现这一目标
  • 你可以使用rs = list(reversed([1,2,3]))

标签: python list reverse


【解决方案1】:

我实际上会做这样的事情(我假设你不能使用reversed())。这使用切片符号来反转列表。

def reverse(s): 
    return s[::-1]

我还假设您需要将其包装在一个函数中,您可以单独使用索引表示法。

编辑:

这里稍微解释一下[::-1]操作:

切片符号的格式为[start_point:end_point:step]

未指定start_point,这将成为列表的长度,因此操作从末尾开始。

end_point 也没有指定,它变成了-1,所以操作将在开始时结束。

step-1,因此它将以 1 为步长向后迭代(即列表的每个元素)。

这将创建原始列表的浅表副本。这意味着您传递给reverse(s) 的列表将保持不变。

说明示例:

>>> x = [1, 2, 3]
>>> y = x[::-1]
>>> x
[1, 2, 3]
>>> y
[3, 2, 1]

【讨论】:

    【解决方案2】:

    传递给函数的参数是列表类型。

    def reverse(s):
        return s[::-1]
    

    【讨论】:

      猜你喜欢
      • 2018-10-13
      • 1970-01-01
      • 2012-10-30
      • 1970-01-01
      • 1970-01-01
      • 2019-01-15
      • 2021-02-16
      • 2012-11-11
      • 1970-01-01
      相关资源
      最近更新 更多