我以为我理解Python切片操作,但当我尝试更新切片列表时,我感到困惑:
>>> foo = [1, 2, 3, 4]
>>> foo[:1] = ['one'] # OK, foo updated
>>> foo
['one', 2, 3, 4]
>>> foo[:][1] = 'two' # why foo not updated?
>>> foo
['one', 2, 3, 4]
>>> foo[:][2:] = ['three', 'four'] # Again, foo not updated
>>> foo
['one', 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)
为什么foo之后没有更新foo[:][1] = 'two'?
更新:也许我没有清楚地解释我的问题.我知道切片时会创建一个新列表.我怀疑切片分配更新列表的原因(例如foo[:1] = ['one']),但如果有两个切片级别,则不会更新原始列表(例如foo[:][2:] = ['three', 'four']).