我遇到了以下代码(有点):
my_list = [1, [2, 3, 4], 5]
my_list[1:2] = my_list[1]
Run Code Online (Sandbox Code Playgroud)
运行这两行后,变量my_list将是[1, 2, 3, 4, 5].对扩展嵌套列表非常有用.
但为什么它实际上做它做的事情呢?
我会假设该声明my_list[1:2] = my_list[1]将执行以下操作之一:
[2, 3, 4]列表中的第二个位置(它已经存在)my_list[1:2])的容器中,给出某种"解压缩的值太多"错误.(使用Numpy数组而不是列表重复上述操作会导致类似的错误.)其他问题(例如,赋值如何与python列表切片一起使用)往往不太注意要替换的切片大小与要替换它的项目的大小之间的差异.(更别说解释它为什么会这样运作了.)