我有类似的东西:
>>> S=list()
>>> T=[1,2,3]
>>> for t in T:
... print(S.append(t))
我得到的输出是:
...
None
None
None
我希望 S 包含 t。为什么这对我不起作用?
我有类似的东西:
>>> S=list()
>>> T=[1,2,3]
>>> for t in T:
... print(S.append(t))
我得到的输出是:
...
None
None
None
我希望 S 包含 t。为什么这对我不起作用?
list.append()
不返回任何东西。因为它不返回任何内容,所以它默认为None
(这就是为什么当您尝试打印值时,您会得到None
)。
它只是将项目附加到给定的列表中。观察:
>>> S = list()
>>> T = [1,2,3]
>>> for t in T:
... S.append(t)
>>> print(S)
[1, 2, 3]
另一个例子:
>>> A = []
>>> for i in [1, 2, 3]:
... A.append(i) # Append the value to a list
... print(A) # Printing the list after appending an item to it
...
[1]
[1, 2]
[1, 2, 3]
. append() 是一个列表方法,它不返回一个改变列表的值。例如 .index() 或 .count() 方法返回对象值,而 .append() 改变对象。例如:
T = [1, 2, 3]
T.append(4)
print(T)
结果:[1、2、3、4]
我们可以使用 .append() 来更改列表 S 并从列表 T 中添加元素。列表 S 和 T 是两个独立的对象,在内存中具有两个不同的地址。使用函数 id() 你可以检查它。
T = [1, 2, 3]
print(id(T))
S = list()
print(S)
print(id(S))
for t in T:
S.append(t)
print(S)
print(id(S))
结果:
2476978999688
[]
2476978081224
[1, 2, 3]
2476978081224
如果您只想对同一个列表使用两个不同的名称(S 和 T),我们可以这样写:
print(T)
print(id(T))
S = T
print(S)
print(id(S))
结果:
[1, 2, 3]
2476978999688
[1, 2, 3]
2476978999688