Skip to main content
 首页 » 编程设计

python之在 for 循环中需要范围

2025年05月04日19findumars

def sum_items(list1, list2): 
    sum_list = [] 
    for i in range(len(list1)): 
        sum_list.append(list1[i] + list2[i]) 
 
 
return sum_list 

为什么像这样的东西需要范围函数?如果我们简单地使用 list1 的 len,结果会不会一样?

请您参考如下方法:

因为 Python 中的 for 循环实际上是一个 for each loop ;你需要给它一个 iterable 来循环;您不是在循环一定次数的迭代,而是在元素上迭代,一个元素接一个元素。

如果您尝试仅遍历长度,则会出现异常:

>>> for i in 42: 
...     pass 
...  
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
TypeError: 'int' object is not iterable 

对于您的特定 示例,您也不需要使用range(),我会使用zip() function相反:

def sum_items(list1, list2): 
    sum_list = [] 
    for i, j in zip(list1, list2) 
        sum_list.append(i + j) 
    return sum_list 

或者,结合列表理解:

def sum_items(list1, list2): 
    return [i + j for i, j in zip(list1, list2)] 

或使用 sum()对每个压缩元组中的所有值求和:

def sum_items(list1, list2): 
    return [sum(t) for t in zip(list1, list2)] 

zip() 从每个参数可迭代对象中获取元素,并将这些元素一一配对; [1, 2, 3] 和 ['foo', 'bar', 'baz'] 变成 [(1, 'foo'), (2 , 'bar'), (3, 'baz')].更多输入参数意味着输出元组中有更多元素。