【问题标题】:When to use range function in python for loops何时在 python for 循环中使用 range 函数
【发布时间】:2020-09-07 00:01:11
【问题描述】:

如果我们能够在不使用 range 函数的情况下创建一个 for 循环,如下所示:

foods = [potato, pizza, spinach]

for food in foods:
  print(food)

为什么我不能在下面的嵌套 for 循环中做同样的事情?

def exponents(bases, powers):
  results = []

  for i in range(len(bases)):
    for j in range(len(powers)):
      results.append(bases[i]**powers[j])
  return results

而是使用这种方法:

def exponents(bases, powers):
  results = []

  for i in bases:
    for j in powers:
      results.append(bases[i]**powers[j])
  return results

将导致 indexError:

IndexError: list index out of range

就这些变量而言,单循环和嵌套 for 循环有什么区别?

【问题讨论】:

    标签: for-loop nested-for-loop


    【解决方案1】:

    当您使用 range 函数时,您正在迭代列表索引。当您直接使用列表时,您正在迭代列表中的对象。

    试试这个:

    def exponents(bases, powers):
      results = []
    
      for b in bases:
        for p in powers:
          results.append(b**p)
      return results  # not new
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-19
      • 1970-01-01
      • 2019-05-27
      • 1970-01-01
      • 2016-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多