【问题标题】:Rotateleft array [duplicate]向左旋转数组[重复]
【发布时间】:2020-06-12 05:40:51
【问题描述】:

我正在尝试使用以下函数来旋转数组:

def rotLeft(a,d):
    temp=[]
    temp.append(a[0:-1])
    temp.insert(0,a[-1])
    return temp

我应该得到输出为 5 1 2 3 4

但我得到 5,[1,2,3,4]

如何解决这个问题

【问题讨论】:

  • 什么是d?在你的 fnc 中
  • 不需要temp,只需return a[-1:] + a[0:-1]

标签: python arrays python-3.x list


【解决方案1】:

您必须使用使用.extend() 而不是.append(),因为.append().insert() 用于添加元素,而.extend() 用于合并两个列表:

def rotLeft(a,d):
    temp=[]
    temp.extend(a[0:-1])
    temp.insert(0,a[-1])
    return temp

print(rotLeft([1,2,3,4,5], 1))

输出:

[5, 1, 2, 3, 4]

【讨论】:

    【解决方案2】:

    您需要使用temp.extend,而不是temp.append。后者只是将一个元素添加到temp,列表[1,2,3,4] - 这就是你最终得到一个嵌套列表的原因。另一方面,extend 就像 [1,2,3,4] 中的 每个元素 附加到 temp 一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-17
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-31
      • 1970-01-01
      相关资源
      最近更新 更多