【问题标题】:List iteration in python with [0]*n使用 [0]*n 在 python 中列出迭代
【发布时间】:2022-01-11 16:59:57
【问题描述】:

我没有得到这个。为什么以下代码 sn-p 的输出为 [0,0,10,20,30]。

my_list=[0]*5
for i in range(1,5):
    my_list[i]=(i-1)*10
print(my_list)

【问题讨论】:

    标签: python list loops range


    【解决方案1】:

    在 python 中索引从 0 开始,这里你必须使用 range(0,5) 来考虑这一点:

    my_list=[0]*5
    for i in range(0,5):
        my_list[i]=(i-1)*10
    print(my_list)
    

    正确填充你的向量。

    【讨论】:

      【解决方案2】:

      列表索引从零开始,范围的第二个参数是停止值(即不包括 5),因此您可以在脑海中(或在纸上)分解过程:

                                     # my_list          i      (i-1)*10
      my_list=[0]*5                  # [0, 0, 0, 0, 0]
      for i in range(1,5):           #                  1..4
          my_list[i]=(i-1)*10        # [0,00, 0, 0, 0]  1      00
                                     # [0, 0,10, 0, 0]  2      10
                                     # [0, 0,10,20, 0]  3      20
                                     # [0, 0,10,20,30]  4      30  
      print(my_list)
      

      如果您希望获得 [0,10,20,30,40],您必须考虑从零开始的索引:

      my_list = [0]*5
      for i in range(5):      # 0..4   range(5) is the same as range(0,5)
          my_list[i] = i*10 
      

      【讨论】:

        猜你喜欢
        • 2014-07-19
        • 2012-02-17
        • 1970-01-01
        • 1970-01-01
        • 2010-10-20
        • 1970-01-01
        • 2021-12-02
        • 2011-02-11
        相关资源
        最近更新 更多