Dive Into Python是众多消息来源之一:
您无法向元组添加元素。
但看起来好像我被允许这样做。我的代码:
from string import find
def subStringMatchExact(target, key):
t = (99,)
location = find(target, key)
while location != -1
t += (location,) # Why is this allowed?
location = find(target, key, location + 1)
return t
print subStringMatchExact("atgacatgcacaagtatgcat", "tg")
输出:
(99, 1, 6, 16)
这使我相信在初始化t
时我实际上并没有创建元组。有人可以帮我理解吗?
答案 0 :(得分:12)
你在一个新元组中连接2个元组。 您没有修改原件。
> a = (1,)
> b = a
> b == a
True
> a += (2,)
> b == a
False
答案 1 :(得分:3)
t += (location,)
是t = t + (location,)
的简写,因此您正在创建一个新的元组实例,并在每次循环时将其分配给t。
答案 2 :(得分:2)
我的猜测是你只是创建一个元组的新实例并将其分配给t
。它实际上并没有修改原始的t
对象。