Python &引用;。附加报价(&Q);及+&引用;函数内部的语义差异
我很难理解这三个例子之间的区别Python &引用;。附加报价(&Q);及+&引用;函数内部的语义差异,python,Python,我很难理解这三个例子之间的区别 #example1 list1 = [1,2,3,4] list1= list1+[6] list1.append(1000) print("Example 1: ", list1) # example 2 def f(j): j= j + [6] j.append(1000) list2 = [1,2,3,4] f(list2) print("Example 2: ", list2) # exampl
#example1
list1 = [1,2,3,4]
list1= list1+[6]
list1.append(1000)
print("Example 1: ", list1)
# example 2
def f(j):
j= j + [6]
j.append(1000)
list2 = [1,2,3,4]
f(list2)
print("Example 2: ", list2)
# example 3
def f(j):
j.append(1000)
j= j +[6]
list3 = [1,2,3,4]
f(list3)
print("Example 2: ", list3)
输出:
第一个我用(+)和(.append)做了一些简单的加法,效果很好
第二个我创建了一个函数。我想我了解结果。在我看来,它保持不变,因为我在原始列表中所做的更改仅在本地进行,因此,在函数完成后,原始列表保持不变。我说得对吗
第三个我不明白。因为它与第二个完全相同,我刚刚更改了元素的顺序,但是输出是完全不同的。示例2创建了一个带有j=j+[6]
的新列表,该列表的唯一引用是局部变量j
,因此在f
返回后,更改不可见
示例3将值附加到由j
引用的原始列表中,而list3
仍然引用该列表。示例2创建了一个带有j=j+[6]
的新列表,该列表的唯一引用是局部变量j
,因此在f
返回后,更改不可见
示例3将该值附加到由
j
引用的原始列表,而list3
仍然引用该列表。.append()
修改现有列表<代码>+创建一个新列表。请提供预期的列表。显示中间结果与您预期的不同之处。我们应该能够复制和粘贴连续的代码块,执行该文件,并再现您的输出。特别是,不接受文本图像。.append()
修改现有列表<代码>+创建一个新列表。请提供预期的列表。显示中间结果与您预期的不同之处。我们应该能够复制和粘贴连续的代码块,执行该文件,并再现您的输出。特别是,文本的图像是不可接受的。您可能希望提到+=
类似于append
,它在适当的位置修改列表。因此,他可以编写j+=[6]
您可能想提到的是+=
就像append
,它修改了适当的列表。这样他就可以写j+=[6]