首页 > 解决方案 > 如何在 Python 中“扩展”数组?

问题描述

我想以某种方式在 python 中扩展二维数组。

没有循环

Fe 如果是:

[[255, 255, 255],
     [255, 255, 255],
     [255, 255, 255]]

我会说我想将它扩展 2 倍并得到这样的结果:

[[255, 0, 255, 0, 255, 0],
  [0,  0,  0,  0,  0,  0],
 [255, 0, 255, 0, 255, 0],
  [0,  0,  0,  0,  0,  0],
 [255, 0, 255, 0, 255, 0],
  [0,  0,  0,  0,  0,  0]]

等等,如果是 4 因子。

有什么功能吗?

标签: pythonarraysnumpy

解决方案


你可以在没有 numpy 的情况下使用列表理解来做到这一点:

lst = [[255, 255, 255],
       [255, 255, 255],
       [255, 255, 255]]
extend_list = [ [lst[j // 2][i // 2] if j % 2 == 0 and i % 2 == 0 else 0 for i in range( 2 * (len(lst[j // 2])) )] if j != len(2 * lst) else [0 for _ in range( (2 * len(lst)) -1)] for j in range(2 * (len(lst)) )]

print(extend_list)

输出:

[[255, 0, 255, 0, 255, 0], [0, 0, 0, 0, 0, 0], [255, 0, 255, 0, 255, 0], [0, 0, 0], [255, 0, 255, 0, 255, 0], [0, 0, 0, 0, 0, 0]]

推荐阅读