我必须编写一个函数,将多个元素插入到未知长度的单个维数组中。
例如:
input_array = [1, 2, 3, 4, 5]
在每个元素之间插入两个零,以提供:
output_array = [1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5]
..... 有什么想法吗?
答案 0 :(得分:0)
这是代码的两个版本。
简单循环:
input_array = [1, 2, 3, 4, 5]
output_array = []
for k in input_array:
output_array.append(k)
output_array.append(0)
output_array.append(0)
print(output_array)
input_array = [1, 2, 3, 4, 5]
output_array = [item for sublist in [[x, 0, 0] for x in input_array] for item in sublist])
print(output_array)
答案 1 :(得分:0)
我不能说@Willem指出,提问者是否正在寻找比他/她自己想出的更快的解决方案。实际上,这似乎是一项简单的任务:
def fill(iterable, padding: tuple):
result = list()
for i in iterable:
# The * symbol is a sequence unpacking and it serves to flatten the values inside result
# For example, [*(0, 1, 2)] equals [0, 1, 2] and not [(0, 1, 2)]
result.extend([i, *padding])
return result
if __name__ == "__main__":
data = range(1, 6)
padding = (0, 0)
print(fill(data, padding))
我显然可以选择任何其他容器类型来代替分配给list
的{{1}}。
以下是在我的机器上运行时上述脚本输出的内容:
result