yuh*_*ngd 5 python tuples list extend
我正在阅读一段Python代码,有一件事我无法理解.a是一个列表,num是一个整数
a += num,
Run Code Online (Sandbox Code Playgroud)
工作,但
a += num
Run Code Online (Sandbox Code Playgroud)
不行.任何人都可以向我解释这个吗?
首先,重要的是要注意这里的工作方式与本例a += 1,不同。a = a + 1,(a = a + 1,和a = a + (1,)都抛出 aTypeError因为你不能连接列表和元组,但你可以用元组扩展列表。)
+=调用列表__iadd__方法,该方法调用list.extend然后返回原始列表本身。
1,是一个长度为 1 的元组,所以你要做的是
>>> a = []
>>> a.extend((1,))
>>> a
[1]
Run Code Online (Sandbox Code Playgroud)
由于一个元组的长度,这看起来很奇怪。但它的工作原理就像用任意长度的元组扩展列表一样:
>>> a.extend((2,3,4))
>>> a
[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)