リストの1つの指定されたインデックスから複数のリストを結合し、それぞれのインデックスの値を合計するにはどうすればよいですか?関数を使用して指定されたインデックスから始まる異なる長さのPythonの合計リスト
私は3つのリストを持っていた場合:
a = [1, 2, 3, 4, 5, 0, 0, 0, 0]
b = [2, 3, 4, 5, 6]
c = [5, 2]
私はa
内の任意の位置にリストb
とc
を挿入することができ、それぞれのインデックスが合計なるように、私はそれを作ることができる方法は?
たとえば、a
の最初のインデックスからリストb
を挿入し、a
の5番目のインデックスからリストc
を挿入することもできます。あなたがa
の前述のインデックスでリストb
とc
を追加するとき、私はやりたい第五インデックス、の重複があったことがわかります
NewList = [1, 4, 6, 8, 10, *11*, 2, 0, 0]
:これの出力は次のようになります。
Iは、スライス方式と組み合わせてitertools
からizip_longest
を用いて試みた:
result = [sum(n) for n in izip_longest(a[2:], b, fillvalue=0)]
しかし、これは生成:
result = [5, 7, 9, 5, 6, 0, 0]
これはリストa
で0と1のインデックスを、オフ切断するIほしくない。しかし、異なる長さのリストを合計することができるので、izip_longest
を使用します。
a
はlen = 1000のリストにすることができ、a
に任意の長さの異なるリストを挿入することができます何度も私が望むようにインデックス値が合計されます。ここで
編集提案に記載されているとおりです。 '[b]'は 'b'と同じではありません。これら2つを混同しないでください。 –
あなたの質問を簡略化することをお勧めします。私は一度だけそれを読むことを認めますが、あなたのポイントが何かを理解することは難しいです。 –
なぜ最初に行単位で処理しないのですか?完成まで(リストの理解に)時間がかかります(https://docs.python.org/2/tutorial/datastructures.html#list-comprehensions)。私はこれがリストの理解を使って簡単に(または可能である)とは思わない。言い換えれば、**これには1行の解決策はありません**。 –