我必須編寫一個函數,將多個元素插入未知長度的單維數組中。以奇數間隔在單維數組中添加多個元素
例如:
input_array = [1, 2, 3, 4, 5]
插入各個元素之間的兩個零,給:
output_array = [1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5]
..... 任何想法?
我必須編寫一個函數,將多個元素插入未知長度的單維數組中。以奇數間隔在單維數組中添加多個元素
例如:
input_array = [1, 2, 3, 4, 5]
插入各個元素之間的兩個零,給:
output_array = [1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5]
..... 任何想法?
這是兩個版本的代碼。
簡單的for循環:
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)
@ Zara44請問這個答案對你有幫助嗎? –
我不能說是否提問者,如@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))
我能明顯選擇分配給result
代替list
任何其他容器類型。
下面就是我的機器上運行時,上面的腳本輸出:
[email protected]:~$ python3.6 ./test.py
[1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0]
那麼你有什麼不明白的有關*你*必須寫一個函數的事實呢? –