Python のコードを見てると

items[:] = something()

のようなのを見かけました

なんだっけこれ
この構文有効なんだっけ?
……とか思って試してみるとリストの部分入れ替えでした
なんかあったような気もする

>>> items = [1,2,3,4,5,6,7,8]
>>> items[2:6] = [100,200]
>>> items
[1, 2, 100, 200, 7, 8]

JavaScript でいう splice ですね

const items = [1,2,3,4,5,6,7,8]
items.splice(2, 4, 100, 200)
console.log(items)
// [1, 2, 100, 200, 7, 8]

[:] だとリスト内全部が置換対象になっています
それだと [:] なしでも同じなのですが 既存リストが変更される違いがあります
[:] なしは新しいリストを変数に代入です

>>> items = [1, 2]
>>> id(items)
5792232
>>> items = [3, 4]
>>> id(items)
5794504

[:] ありだと変数に入っているリストオブジェクトはそのままです

>>> items = [1, 2]
>>> id(items)
5792232
>>> items[:] = [3, 4]
>>> id(items)
5792232

別のところでもこのリストを保持していて そっちにも影響を与えたいときには良さそうです