【问题标题】:why is the count backwards为什么倒数
【发布时间】:2022-10-04 23:59:55
【问题描述】:

我有以下代码,但我不明白为什么如果没有使用-1,结果会显示倒数

def strange(n):
    list = []

    for i in range(0, n):
        list.insert(0, i)

    return list


print(strange(15))

【问题讨论】:

  • Python insert()append() 不同。它根据您在参数中指定的位置添加元素,而append() 始终添加到最后一个位置。在循环内尝试print(list) 以查看该过程。

标签: python list


【解决方案1】:

您按顺序获取列表中的每个值,但是当您插入数据时,它总是插入到 0(从列表的左侧开始)

【讨论】:

    【解决方案2】:

    由于这行代码,它向后出现:

    list.insert(0, i)
    

    每次插入一个值时,它都会保存到索引0,因此结果列表会向后移动。

    如果您改用append 方法,它将按升序排列。您还可以将insert 中的0 替换为其他数字,如果索引存在,这会将值放在该位置。

    【讨论】:

      【解决方案3】:

      因为在索引之前插入插入

      arr = [1,2,3]
      arr.insert(0, 0)
      print(arr) # -> [0,1,2,3]
      

      使用 .append(i) 代替,它会在列表末尾添加 obj

      或者您也可以使用 _list.insert(i, i) 将 obj 附加到末尾

      def strange(n): 
          _list = []
          for i in range(0, n):
              _list.append(i)
      
          return _list
      
      print(strange(15))
      

      而且,不要将您的变量称为内置类型列表,这是不好的做法,因为您无法再访问它,它将用您的新值重写。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-18
        • 1970-01-01
        • 2020-06-18
        • 2011-01-28
        • 2017-03-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多