如何将整数列表转换为连续相邻元素的成对元组?
解决方案
方法1:手动遍历索引的for循环写法
这是最直观的实现方式,直接控制索引范围避免越界:
def get_consecutive_pairs(numbers): pairs = [] # 只遍历到倒数第二个元素的索引,确保i+1不会超出列表范围 for i in range(len(numbers) - 1): pairs.append((numbers[i], numbers[i+1])) return pairs numbers = [1, 5, 7, 19, 22, 55] print(get_consecutive_pairs(numbers))
运行后输出:
[(1, 5), (5, 7), (7, 19), (19, 22), (22, 55)]
方法2:用zip函数实现简洁写法
利用Python内置的zip函数——它能把两个可迭代对象的对应元素配对。我们只需要把原列表和原列表从第二个元素开始的切片传入zip,再转成列表即可:
numbers = [1, 5, 7, 19, 22, 55] pairs = list(zip(numbers, numbers[1:])) print(pairs)
输出结果和上面完全一致。
你之前的for循环可能出错的原因
多半是索引范围没控制对:如果遍历到了列表最后一个元素的索引,再访问numbers[i+1]就会触发索引越界;或是没有在循环里把生成的元组正确添加到结果列表中。
内容的提问来源于stack exchange,提问作者Rohit Rahman
相关产品推荐
相关产品推荐

