关于Python列表结果的混淆

关于Python列表结果的混淆,python,Python,代码如下: a=[1,2,3] a[1]=10,20,30 print a a[1:2]=10,20,30 print a a[1:2]=[10,20,30] print a 结果是: [1, (10, 20, 30), 3] [1, 10, 20, 30, 20, 30] [1, 10, 20, 30, 20, 30, 3] 谁能告诉我发生了什么事吗?你也许应该复习一下。简而言之,您的第一个操作创建了一个列表。第二个操作在索引1处插入了一个元组。第三个操作将列表片段替换为元组的内容,而第四

代码如下:

a=[1,2,3]
a[1]=10,20,30
print a
a[1:2]=10,20,30
print a
a[1:2]=[10,20,30]
print a
结果是:

[1, (10, 20, 30), 3]
[1, 10, 20, 30, 20, 30]
[1, 10, 20, 30, 20, 30, 3]

谁能告诉我发生了什么事吗?

你也许应该复习一下。简而言之,您的第一个操作创建了一个列表。第二个操作在索引1处插入了一个元组。第三个操作将列表片段替换为元组的内容,而第四个操作将列表片段替换为另一个列表的内容

a=[1,2,3]
print a
a[1]=10,20,30  # add a tuple at position 1
print a  
a[1:2]=10,20,30 #replaces tuple and inserts 10,20,30 at position 1
print a  
a[1:2]=[10,20,30] #now a[1:2] is 10 so this replaces 10 and inserts 10,20,30 at position 1 
print a 
输出

[1, 2, 3]
[1, (10, 20, 30), 3]
[1, 10, 20, 30, 3]
[1, 10, 20, 30, 20, 30, 3]
注意:末尾永远不会有30。
希望这有帮助。

什么是结果?哦,每个步骤中列出“a”的结果。对不起,谢谢。我还有三个问题:1。为什么第二个操作是“插入”而不是“替换偏移量1处的图元”?2.在第三个操作中,我的切片只有大小1,但元组有大小3,为什么它们都插入成功?3.为什么[1::-1]=10,20,30会出现错误?1。我可能应该说替换而不是插入。2.列表包含对象的集合,元组是可以插入的对象。3.根据您使用的切片符号,插入的切片太小。我的意思是,它看起来像“a[1:2]=10,20,30”插入了三个元素10,20,30,而不是一个元组(10,20,30),但是切片a[1:2]的大小只有1。它不应该太小而无法插入吗?像[1::-1]?10,20,30是一个元组。逗号使它成为元组,而不是括号。只有在存在歧义时才需要括号,例如在函数调用中。