【问题标题】:Python - Append Help - String & listPython - 附加帮助 - 字符串和列表
【发布时间】:2011-12-31 10:32:58
【问题描述】:

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

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

当我评估以下内容时:

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

为什么会返回这个?:

['r', 'c']

【问题讨论】:

  • 好的,我在下面给出了解释。
  • 谢谢 Nemoden !,抱歉再次解释...,我害怕使用错误的术语/单词来解释 python... :)

标签: python append


【解决方案1】:

好的,那么逐行...

您的电话如下所示:

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 &lt; 3

    2. 然后n增加:

      n += 2
      

      所以它现在等于2

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

      t.append(xs[n])
      

      这个元素是“r”,因为xs[2] == 'r'

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

      n += 2
      

      并且n 现在等于4

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

      t.append(xs[n])
      

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

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

  3. (Step 3. - 循环之后) ...程序流程进入函数的最后一条语句,即:

    return t
    

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

够清楚吗?有帮助吗?

【讨论】:

  • 愚蠢的我,由于某种原因,我有 n = 3,对我来说已经晚了,我一定要失明了!希望这对未来的任何人都有用,就像我一样愚蠢......哈哈
  • @jetair:它可能没什么用,因为它已经非常本地化并且包含基本的编程知识。
  • 那我可以删除它吗?将它放在这里并浪费空间会很愚蠢...?
  • 这是您的决定,但您的问题并不像以前的 8169248 个条目(您的问题编号为 8169249)中的一些问题那样无价。不要害怕提问,只要在向别人提问之前尽可能地解决问题。
【解决方案2】:
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 > m,所以函数返回 ['r', 'c']。一切都是正确的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 2010-11-14
    • 2015-07-29
    • 2021-11-29
    • 1970-01-01
    • 2012-12-05
    相关资源
    最近更新 更多