Python - 附加帮助 - 字符串&名单

时间:2011-11-17 14:57:50

标签: python append

另一个追加问题......这是我的代码:

def s(xs,n,m):
    t = []
    while n < m:
        n += 2
        t.append(xs[n])
    return t

当我评估以下内容时:

x = s('African', 0, 3)

为什么要归还?:

['r', 'c']

2 个答案:

答案 0 :(得分:3)

while n < m:
    n += 2 # at this point n = 2 because you've passed 0
    t.append(xs[n]) # you append r to t since xs[2] = r

但是n <我还是,所以下一次迭代:

while n < m:
    n += 2 # at this point n = 4
    t.append(xs[n]) # you append c to t since xs[4] = c

现在n&gt; m,所以函数返回['r', 'c']。一切都是正确的。

答案 1 :(得分:2)

好的,一行一行......

您的电话如下:

x = s('African', 0, 3)

所以会发生什么:

  1. 步骤1. - 初始分配

    def s(xs,n,m):
    

    xs='African'n=0m=3然后:

    t = []
    

    (因此,引入了空列表t)。

  2. 第2步 - 循环

    1. 然后评估以下条件:

      while n < m:
      

      True,因为0 < 3

    2. 然后n增加:

      n += 2
      

      所以它现在等于2

    3. 然后将相应的元素附加到空的t列表中:

      t.append(xs[n])
      

      此元素为“r”,因为xs[2] == 'r'

    4. 然后n < m条件再次评估为True(因为2 < 3),所以循环再次执行:

      n += 2
      

      n现在等于4

    5. 然后,来自xs字符串的相应字符会附加到t列表(已有一个元素,r,如上所述)。

      t.append(xs[n])
      

      此元素为“c”(因为xs[4]正好是“c”)。

    6. 然后再次评估while循环的条件,但这次是False(因为4 < 3不是真的),所以循环停止执行...

  3. (第3步 - 循环之后)......程序流程转到函数的最后一个语句,即:

    return t
    
  4. t返回我们填充了两个元素的列表 - 结果,该函数返回列表['r', 'c']

    足够清楚了吗?它有帮助吗?