不明な長さの1次元配列に複数の要素を挿入する関数を記述する必要があります。例えば複数の要素を奇数の間隔で1次元配列に追加する
:
input_array = [1, 2, 3, 4, 5]
を与えるために、各要素の間に2つのゼロを挿入:
output_array = [1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5]
を..... 任意のアイデア?
不明な長さの1次元配列に複数の要素を挿入する関数を記述する必要があります。例えば複数の要素を奇数の間隔で1次元配列に追加する
:
input_array = [1, 2, 3, 4, 5]
を与えるために、各要素の間に2つのゼロを挿入:
output_array = [1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5]
を..... 任意のアイデア?
コードの2つのバージョンがあります。
ループ用のシンプルな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ノートとして、より速く解決策を探していたかどうかを言うことができません彼/彼女自身は思い付くことができた。実際には、これは簡単な作業のように思える:私は明らかにresult
に割り当てられたlist
の代わりに他のコンテナタイプを選択することができ
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))
。以下は
私のマシン上で実行しているときにどのような上記のスクリプトの出力です:
[email protected]:~$ python3.6 ./test.py
[1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0]
さてあなたは*あなたが*の機能を記述する必要があるという事実について何を理解していませんか? –