如何用Python创建n×n菱形结构的二维数组?
生成n×n菱形二维数组的Python实现问题
需求说明
- 实现一个Python函数,生成n×n的二维数组,构成完整菱形结构:
- 当n为偶数时,菱形宽度为两个
1 - 当n为奇数时,菱形宽度为一个
1 - 示例:调用
diamond(3)需返回:[['0', '1', '0'], ['1', '1', '1'], [' ', '1', ' ']]
- 当n为偶数时,菱形宽度为两个
当前问题
自行编写的my_diamond函数仅能生成十字结构,无法实现完整菱形,代码如下:
def my_diamond(n): if n % 2 == 0: return [ ["1" if (i+1 == n//2) or (i == n//2) or (j == n//2) or (j+1 == n//2) or (i > 0 and j>0 and i!=j and (i%j ==0 or j%i ==0)) else "0" for i in range(n) ] for j in range(n) ] return [ ["1" if (i == n//2) or (j == n//2) or (i > 0 and j>0 and (i%j ==0 or j%i ==0)) else "0" for i in range(n) ] for j in range(n) ]
诉求
已知有依赖numpy的实现方案,但希望不借助任何第三方库,纯Python实现需求。
内容的提问来源于stack exchange,提问作者user9493162
相关产品推荐
相关产品推荐

