Python实现列表元素两两分组相加的问题求助
解决方法
你可以通过调整循环逻辑实现两两分组相加的需求,同时规避原代码中最后一次循环list1[x+1]越界的问题,以下是两种可行的修改方式:
方法一:调整循环步长
list1 = [1,2,3,4,5,6] for x in range(0, len(list1), 2): num1 = list1[x] num2 = list1[x+1] print(f"{num1}+{num2}={num1+num2}")
修改说明
- 将
range(len(list1))替换为range(0, len(list1), 2):步长设为2后,索引会依次取0、2、4,刚好对应每组第一个元素的位置 - 合并两次
print为一个语句,直接输出完整等式,让输出格式匹配预期 - 循环仅执行3次,分别处理(1,2)、(3,4)、(5,6)三组元素,恰好得到目标输出
方法二:用切片+zip实现(更简洁)
list1 = [1,2,3,4,5,6] for num1, num2 in zip(list1[::2], list1[1::2]): print(f"{num1}+{num2}={num1+num2}")
逻辑说明
list1[::2]提取列表中索引为偶数的元素:[1,3,5]list1[1::2]提取列表中索引为奇数的元素:[2,4,6]zip会将两个列表的对应元素配对,直接得到(1,2)、(3,4)、(5,6)这样的元组,代码更简洁易读
内容的提问来源于stack exchange,提问作者james
相关产品推荐
相关产品推荐

