Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.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+;=有一个列表和一个元组_Python - Fatal编程技术网

Python+;=有一个列表和一个元组

Python+;=有一个列表和一个元组,python,Python,我看到有人在网上写了一行有趣的python代码,但我不明白为什么它能工作。因此,我们可以在python解释器中尝试以下几行: s=[1] s=s+(1,-1) 这将导致错误“TypeError:只能将列表(而不是“元组”)连接到列表”。但如果以另一种方式进行: s=[1] s+=(1,-1) 将导致s=[1,1,-1] 所以我曾经认为x=x+y等同于x+=y,有人能告诉我它们是如何不同的,以及为什么第二种方法有效吗?提前感谢。使用列表代替+=。扩展: s = [1] s.extend((1,

我看到有人在网上写了一行有趣的python代码,但我不明白为什么它能工作。因此,我们可以在python解释器中尝试以下几行:

s=[1]
s=s+(1,-1)
这将导致错误“TypeError:只能将列表(而不是“元组”)连接到列表”。但如果以另一种方式进行:

s=[1]
s+=(1,-1)
将导致s=[1,1,-1]


所以我曾经认为x=x+y等同于x+=y,有人能告诉我它们是如何不同的,以及为什么第二种方法有效吗?提前感谢。

使用
列表代替
+=
。扩展

s = [1]
s.extend((1,-1))

你的答案并不遥远。看起来
s+=…
实现为
s.extend(tuple(…)
(或v.v)
s+=1,-1
起作用。主要问题是“有人能告诉我它们有什么不同,为什么第二种方法有效?”。OP希望理解(我看到有人在网上写了一行有趣的python代码,但不明白它为什么工作),没有提供另一个解决方案。第一个副本没有回答这个问题-它询问为什么
+=
更改列表。第二种方法更为适用,尽管解释
原因的唯一真正尝试是与对称性有关。