Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python &引用;。附加报价(&Q);及+&引用;函数内部的语义差异_Python - Fatal编程技术网

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]