当人们说“random.shufle shuffles the sequence 'in place'”时,“in place”的简单含义是什么?

what does 'in place' exactly mean in simple terms when people say "random.shufle shuffles the sequence 'in place' "?

提问人:Junk Mail 提问时间:8/16/2023 最后编辑:Junk Mail 更新时间:8/17/2023 访问量:60

问:

我很难理解人们在提到为什么直接打印出 random.shuffle 返回值“None”而不仅仅是随机列表本身时说“random.shufle shuffles the sequence in-place'” 是什么意思。

具体参考这个问题的答案。

这里的“就地”到底是什么意思?如果可能的话,请用新手术语解释,初学者在这里。谢谢。

谈论这段代码

import random

b = [object(), object()]

print(random.shuffle(b))

打印出来:None

这里存在另一个这样的问题,但它没有解释简单/初学者术语,更复杂的术语。

Python 列表 随机洗牌

评论

0赞 Michael Ruth 8/16/2023
这回答了你的问题吗?“就地”是什么意思?

答:

3赞 CtrlZ 8/16/2023 #1

您正在将列表传递给 shuffle 函数。列表将被随机排列(伪随机重新排列)。该函数不返回任何内容(隐式 None 除外)。因此,您的列表将被修改。

这可以证明如下:

from random import shuffle

my_list = [1, 2, 3, 4, 5]

shuffle(my_list)

print(my_list)

输出可以是:

[1, 5, 3, 4, 2]

因此,您可以看到列表本身已被修改 - 即“就地”