首页 >后端开发 >Python教程 >为什么 Python 的 random.shuffle() 返回 None 而不是打乱后的列表?

为什么 Python 的 random.shuffle() 返回 None 而不是打乱后的列表?

DDD
DDD原创
2024-12-07 15:49:16191浏览

Why does Python's `random.shuffle()` return `None` instead of the shuffled list?

打乱对象列表

编程中的一个常见任务是打乱对象列表。在 Python 中,有一个内置函数可以实现此目的:random.shuffle()。但是,如果您不熟悉其细微差别,它的行为可能会出乎意料。

问题

为什么在列表上调用 random.shuffle() 时对象,返回 None 而不是打乱的列表?

答案

random.shuffle() 就地修改其输入列表,这意味着它不会创建新列表,而是对现有列表的元素进行打乱列表。因此,它没有任何返回值,因此结果为 None。此行为与 Python 的可变对象约定一致,其中修改它们的函数通常返回 None。

示例

要演示这一点,请考虑以下代码:

from random import shuffle

l = [[i] for i in range(10)]
shuffle(l)
print(l)

代码创建一个列表列表并使用 shuffle() 对其进行洗牌。打印结果列表表明它已成功重新排列:

[[9], [2], [7], [0], [4], [5], [3], [1], [8], [6]]

在此示例中,random.shuffle() 确实修改了原始列表,返回 None。

以上是为什么 Python 的 random.shuffle() 返回 None 而不是打乱后的列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn