インデックスアキュムレータは使用しませんが、引き続きインデックスを昇順にする必要があります。
newObjects = ["a", "b", "c"]
newObjectIndices = [0, 2, 4]
existingList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for index, obj in zip(reversed(newObjectIndices), reversed(newObjects)):
existingList.insert(index, obj)
print(existingList) # ['a', 0, 1, 'b', 2, 3, 'c', 4, 5, 6, 7, 8, 9]
昇順を保証できない場合は、並べ替えが可能です。
newObjects = ["b", "a", "c"]
newObjectIndices = [2, 0, 4]
existingList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for index, obj in reversed(sorted(zip(newObjectIndices, newObjects), key=lambda tup: tup[0])):
existingList.insert(index, obj)
print(existingList) # ['a', 0, 1, 'b', 2, 3, 'c', 4, 5, 6, 7, 8, 9]
これは完全に機能します。ポジションとそれぞれの要素が正しく注文されている場合にのみ機能するということを他の人に思い出させるように、ポジション[3、0、2、4]があれば動作しません。 –
@ Loc-Tranに 'assert'文が追加されました。 – Wentao