【问题标题】:How does a list in a for loop work in Python?for 循环中的列表如何在 Python 中工作?
【发布时间】:2021-01-25 12:49:15
【问题描述】:

所以我有这个代码:

def function(b):
   a = []
   for i in range(0,len(b),2)
       a.append(b[i])
   return a

def main():
   a = [0,1,2,3,4,5,6,7,8,9,10,11]
   for i in[51,"a", 3.2]
      a = function(a)
   print a
main()

我不明白 for 循环如何与列表 [51, "a", 3.2] 一起使用,以及为什么使用该列表它会打印 [0, 8],但使用列表[51, "a"] 会打印 [0,4,8]

【问题讨论】:

  • [51,"a", 3.2] 对循环没有任何影响,除了它有 3 个元素并导致它循环 3 次。
  • 要像这个例子一样一步一步地学习代码,你可以试试这个网站 - pythontutor.com
  • 使用更好的变量名,不要调用任何东西a - 这很快就会让人困惑。你也永远不会对我们的外部 i 做任何事情
  • 顺便说一句,function 的全部内容可以替换为return b[::2]

标签: python list python-2.7 for-loop


【解决方案1】:

基本上每次调用该函数时,它只会返回偶数索引中的元素。

然后您将它们存储回a 因此,每次调用函数并存储结果时,您的一半列表仅存储来自偶数索引的那些。您的列表 [52, "a", 3.2] 中的值实际上只是告诉 g 调用函数的次数。

当你调用它 3 次时,你会得到比调用 2 次时更少的结果。如果您将打印放在循环中,您可以看到这一点

def function(b):
   a = []
   for i in range(0,len(b),2):
       a.append(b[i])
   return a

def main():
   a = [0,1,2,3,4,5,6,7,8,9,10,11]
   for i in[51,"a", 3.2]:
      a = function(a)
      print(a)
       
main()

输出

[0, 2, 4, 6, 8, 10]
[0, 4, 8]
[0, 8]

【讨论】:

    猜你喜欢
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 2018-08-07
    • 2022-07-07
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 1970-01-01
    相关资源
    最近更新 更多