如何将偶数元素追加到5x5二维数组中且数值均匀递增无重复
偶数二维数组实现方案
首先你提供的参考代码存在两个逻辑问题:
- for循环的迭代变量
i会每次从range序列中取新值,循环体内手动执行i = i + 1不会生效 - 每次取到偶数后会给所有子数组追加同一个值,最终所有子数组内容完全重复,不符合元素不重复的要求
实现代码
如果你的需求是生成n个子数组,每个子数组包含5个不重复的偶数,内部按公差2均匀递增,全表无重复元素,可以直接用列表推导式实现,逻辑清晰易读:
# 可按需调整子数组数量、单个数组元素个数 row_num = 5 item_per_row = 5 # 生成总个数匹配的连续偶数,再按行拆分 multiarray = [ [2*(i*item_per_row + j + 1) for j in range(item_per_row)] for i in range(row_num) ] print(multiarray)
运行输出如下:
[[2, 4, 6, 8, 10], [12, 14, 16, 18, 20], [22, 24, 26, 28, 30], [32, 34, 36, 38, 40], [42, 44, 46, 48, 50]]
如果需要子数组内的递增公差更大,比如按列分配偶数,每个子数组内元素公差为10(5行场景下),可以调整为如下写法:
row_num = 5 item_per_row = 5 total_evens = [2*(x+1) for x in range(row_num * item_per_row)] multiarray = [total_evens[i::row_num] for i in range(row_num)] print(multiarray)
运行输出如下:
[[2, 12, 22, 32, 42], [4, 14, 24, 34, 44], [6, 16, 26, 36, 46], [8, 18, 28, 38, 48], [10, 20, 30, 40, 50]]
内容的提问来源于stack exchange,提问作者Zukashi
相关产品推荐
相关产品推荐

