如何在Python中生成列表中相邻元素的配对?
生成列表相邻元素配对的解决方案
你之前用itertools.combinations得到所有可能的两两组合,是因为这个函数的作用就是生成列表中所有长度为2的不重复元素组合,并不区分是否相邻。要得到仅相邻元素的配对,有两种简洁的实现方式:
方法1:使用zip函数(推荐)
利用列表切片和zip函数可以快速生成相邻配对:
newl = [1, 8, 10, 16, 19, 22, 27, 33, 36, 40, 47, 52, 56, 61, 63, 71, 72, 75, 81, 81, 84, 88, 96, 98, 103, 110, 113, 118, 124, 128, 129, 134, 134, 139, 148, 157, 157, 160, 162, 164] # 生成相邻配对 pairs = list(zip(newl, newl[1:])) # 打印结果 for pair in pairs: print(pair)
newl[1:]会生成从原列表第二个元素开始的子列表,zip函数会将原列表和这个子列表的对应元素一一配对,正好得到相邻元素的元组。
方法2:通过索引循环遍历
如果需要更直观的控制,可以通过遍历列表索引来构建配对:
newl = [1, 8, 10, 16, 19, 22, 27, 33, 36, 40, 47, 52, 56, 61, 63, 71, 72, 75, 81, 81, 84, 88, 96, 98, 103, 110, 113, 118, 124, 128, 129, 134, 134, 139, 148, 157, 157, 160, 162, 164] pairs = [] for i in range(len(newl) - 1): pairs.append((newl[i], newl[i+1])) # 打印结果 for pair in pairs: print(pair)
这里循环从索引0到len(newl)-2,每次取当前索引和下一个索引的元素组成元组,添加到结果列表中。
内容的提问来源于stack exchange,提问作者user56494
相关产品推荐
相关产品推荐

