Python 将元组分配给两个数组字段

Python 将元组分配给两个数组字段,python,arrays,tuples,Python,Arrays,Tuples,我刚刚注意到python中有一种行为我不理解。 想象一下下面的代码: myArray = [0] * 10 myTuple = (1,1) 现在我想将元组中的两个值分配给数组中的两个字段。因为Python允许一次更改多个值,所以我尝试了 myArray[2:3] = myTuple 我对myArray的期望是 [0,0,1,1,0,0,0,0,0,0] 但我真正得到的是 [0,0,1,1,0,0,0,0,0,0,0] 谁能向我解释这种行为?问题是切片[2:3]的长度是1,索引2处

我刚刚注意到python中有一种行为我不理解。
想象一下下面的代码:

myArray  = [0] * 10   
myTuple = (1,1)
现在我想将元组中的两个值分配给数组中的两个字段。因为Python允许一次更改多个值,所以我尝试了

myArray[2:3] = myTuple
我对myArray的期望是

[0,0,1,1,0,0,0,0,0,0]
但我真正得到的是

[0,0,1,1,0,0,0,0,0,0,0]

谁能向我解释这种行为?

问题是切片
[2:3]
的长度是1,索引
2
处的元素(Python切片不包括
stop
索引,因此不包括索引
3
处的元素)。您试图在其中插入2个元素,因此它在索引2之后插入第二个元素,将数组的大小增加1。你需要做什么-

myArray[2:4] = myTuple
演示-

>>> myArray  = [0] * 10
>>> myTuple = (1,1)
>>> myArray[2:3] = myTuple
>>> len(myArray)
11
>>> myArray  = [0] * 10
>>> myTuple = (1,1)
>>> myArray[2:4] = myTuple
>>> len(myArray)
10

问题是切片
[2:3]
的长度为1,索引
2
处的元素(Python中的切片不包括
stop
索引,因此不包括索引
3
处的元素)。您试图在其中插入2个元素,因此它在索引2之后插入第二个元素,将数组的大小增加1。你需要做什么-

myArray[2:4] = myTuple
演示-

>>> myArray  = [0] * 10
>>> myTuple = (1,1)
>>> myArray[2:3] = myTuple
>>> len(myArray)
11
>>> myArray  = [0] * 10
>>> myTuple = (1,1)
>>> myArray[2:4] = myTuple
>>> len(myArray)
10

myArray[2:3]
实际上是一个包含一个元素的列表(该元素是列表中的第三个元素)

您只需在那里插入2个元素,这会增加列表的大小。您可能想做:

myArray[2:4] = myTuple

myArray[2:3]
实际上是一个包含一个元素的列表(该元素是列表中的第三个元素)

您只需在那里插入2个元素,这会增加列表的大小。您可能想做:

myArray[2:4] = myTuple

您的意思可能是:
myArray[2:4]=myTuple
。另外,您还不完全清楚您是否感到惊讶的是:1。切片分配可以更改列表的长度;或:2<代码>[2:3]仅对单个元素进行切片。不过,这两种情况在其他地方已经解释过了。您的意思可能是:
myArray[2:4]=myTuple
。另外,您还不完全清楚:1。切片分配可以更改列表的长度;或:2<代码>[2:3]仅对单个元素进行切片。不过,这两种方法都已经在别处解释过了。哦,是的……当然……有时候你就是看不到自己代码中的错误。。谢谢是的…当然…有时候你就是看不到自己代码中的错误。。谢谢