因为 (y for y in range(10)) 得到的不是一个元组
这是一个生成表达器,他相当于建立了一个临时的环境,在运行后就释放了
该回答引用GPTᴼᴾᴱᴺᴬᴵ
Python中的元组是不可变对象,即一旦创建后就不能修改它的值。因此,当你使用推导式创建一个元组并将其打印出来后,这个元组的值是被创建的,但是你不能修改它。如果你尝试修改它,你将得到一个TypeError。
如果你想在之后使用元组的值,你可以将其赋值给一个变量,然后使用该变量。例如:
my_tuple = tuple(x**2 for x in range(5))
print(my_tuple)
这将生成一个包含前五个自然数的平方的元组,并将其打印出来,但是该元组的值仍然可用于进一步处理。