Python如何按要求打印数组中隔组元素对(无括号逗号)
Python数组按指定规则输出成对元素(无括号逗号)
问题描述
给定数组:
m = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
需要实现两种输出格式之一:
第一种输出:
1 2 5 6 9 10
第二种输出:
3 4 7 8 11 12
当前尝试的代码输出带有括号和逗号,不符合要求,尝试代码如下:
a = [m[j:j+2] for j in range(0, len(m), 2)] a1 = m[::2] a2 = m[1::2] if s1 > s2: print("\n".join(map(str, a1))) elif s1 < s2: print("\n".join(map(str, a2)))
当前输出:
[3, 4] [7, 8] [11, 12]
解决方案
核心是将每一对元素拼接成空格分隔的字符串,再按行打印,避免直接输出列表导致的括号和逗号。
实现第一种输出
从索引0开始,每隔4个位置取一对元素:
m = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] for i in range(0, len(m), 4): print(f"{m[i]} {m[i+1]}")
输出结果:
1 2 5 6 9 10
实现第二种输出
从索引2开始,每隔4个位置取一对元素:
m = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] for i in range(2, len(m), 4): print(f"{m[i]} {m[i+1]}")
输出结果:
3 4 7 8 11 12
按需切换输出
如果需要根据s1和s2的大小判断输出格式,可以封装成函数:
m = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] def print_target_pairs(start): for i in range(start, len(m), 4): print(f"{m[i]} {m[i+1]}") # 示例判断逻辑 s1 = 5 s2 = 3 if s1 > s2: print_target_pairs(0) else: print_target_pairs(2)
内容的提问来源于stack exchange,提问作者clumsyAlien
相关产品推荐
相关产品推荐

