我最近正在学习如何在 Python 中使用 random.shuffle
,我很惊讶地发现该函数在不返回任何内容的情况下就地随机播放变量。这在函数中是如何实现的?查看随机库的源代码没有得到任何答案。
我如何编写自己的函数来更改变量而无需重新分配?
最佳答案
我之所以能工作是因为列表是可变的。您不能重新分配任何变量,因为它将是新变量。您不能修改不可变类型变量。您可以修改可变变量。
所以:
>>> def addone(x):
... x += 1
>>> a = 2
>>> addone(a)
>>> a
2
>>> def addone(x):
... x.append(1)
...
>>> l=[2]
>>> addone(l)
>>> l
[2, 1]
>>> def addone(x):
... x = x + [1]
...
>>> li=[2]
>>> addone(li)
>>> li
[2]
关于Python 就地更改变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22675506/