2024-09-30 05:15:21 发布
网友
为什么另一个链表的索引赋值会形成链表,而另一个链表的链表切片(一个元素切片)赋值会使链表成为原始链表的一部分,而具有索引的切片和元素都指向同一个元素?内存分配发生了什么变化?你知道吗
l = [1,2,3,4,5,6] l[2:3] = [7,8] # gives [1,2,7,8,5,6] # whereas: l[2] = [7,8] # gives [1,2,[7,8],4,5,6]
和l[2]=3和l[2:3]=3
l[2]=3
l[2:3]=3
你的假设是错误的,当你说l[2]=3和l[2:3]=3时。你知道吗
事实上,情况就是这样:
l = [1, 2, 3, 4, 5, 6] l[2] # 3 l[2:3] # [3]
l[2]是索引2中的元素。 l[2:3]是从索引2开始的长度为1的片(子列表)。你知道吗
l[2]
l[2:3]
因此,赋值给l[2]change to element并赋值给l[2:3]会用另一个切片替换一个切片,正如您所注意到的:
l = [1, 2, 3, 4, 5, 6] l[2:3] = [7,8] # l is now [1, 2, 7, 8, 4, 5, 6] l = [1, 2, 3, 4, 5, 6] l[2] = [7,8] # l is now [1, 2, [7, 8], 4, 5, 6]
你的假设是错误的,当你说l[2]=3和l[2:3]=3时。你知道吗
事实上,情况就是这样:
l[2]
是索引2中的元素。l[2:3]
是从索引2开始的长度为1的片(子列表)。你知道吗因此,赋值给
l[2]
change to element并赋值给l[2:3]
会用另一个切片替换一个切片,正如您所注意到的:相关问题 更多 >
编程相关推荐