python - Python 的 random.shuffle() 如何在不返回任何内容的情况下更改列表的值,这是任何 Python 编码器都可以做的事情吗?
问题描述
编辑:当我问这个时,我没有正确理解可变和不可变对象的概念,以及指向它们的变量
我只是注意到我没有从 random.shuffle() 获得回报。我意识到这是有道理的,因为除非另有说明,否则您在逻辑上希望使用原始列表。
>>> import string
>>> import random
>>> letters = list(string.ascii_lowercase)
>>> print(letters)
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
>>> rand_alpha = random.shuffle(letters)
>>> print(rand_alpha)
None
>>> print(letters)
['f', 'c', 'n', 'u', 'x', 'y', 'q', 'j', 's', 'v', 'w', 'o', 'p', 'z', 't', 'm', 'k', 'd', 'e', 'a', 'g', 'i', 'h', 'l', 'r', 'b']
这让我想知道在另一个范围内更改列表是人们会做的事情(并且应该小心不要意外地做)还是这在 Python 标准库中是特殊的?
我检查了代码 - 并进行了一些搜索 - 但我没有找到任何让我更清楚的东西。
解决方案
有些函数可以就地工作,有些函数会返回它们的结果。对于第二种类型,您必须将它们的返回值分配给某些东西以使用它。
可能最简单\最常见的例子是.sort
列表方法和sorted
函数;第一个工作很像你shuffle
,而第二个返回传递的列表的排序副本。
这有帮助吗?
推荐阅读
- html - 防止我的固定页脚重叠内容
- django - 带有环境变量的 SECRET_KEY 的 Django apache2 KeyError
- javascript - 模块升级后无法构建 react-native 应用程序:此包本身指定了无法解析的“主”模块字段
- arrays - Ruby - 在循环中使用变异数组进行下一次迭代
- java - OpenOfficeException:连接失败:套接字
- javascript - 订阅按钮后获取 javascript 答案的问题
- android - 谁能帮我这个?我的安卓应用不断崩溃
- sql - SQL Group by CASE 结果
- kubernetes - Kubernetes 外部探针
- css - 使用 webpack 将 sass 文件编译为散列 css