gpt4 book ai didi

python - Python 集合的随机化程度如何?

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:40 25 4
gpt4 key购买 nike

首先,我知道我永远不应该尝试我在这个问题中描述的事情,这纯粹是假设,所以请不要对我大喊大叫。

Python 集不保持顺序,因为它们是没有映射部分的 HashMap 。所以我想知道他们在随机化事物方面做得如何。它显然不足以用于加密,并且不适用于整数(因为 Python 哈希是整数上的标识),但它是否足以用于游戏和其他东西?

它可以很好地工作是有道理的,因为它是在哈希上进行修改的,但我不确定该哈希有多好以及它在随机化方面的效果如何。

P.S:对于相同的值,集合将始终返回相同的洗牌,但您可以假设这不是问题。

最佳答案

set 没有顺序,因此根据定义它不能随机化顺序。如果您关心顺序,则迭代顺序不可用。正如 BrenBam 所说,如果您以任何方式关心订单,您就不能依赖它,因为它是一个实现细节。

随机化顺序的正确方法是 random.shuffle

some_set_of_stuff = set(...)
some_list_of_stuff = list(some_set_of_stuff) # you MUST make an ordered container for this!
random.shuffle(some_list_of_stuff)

或者,如果确实需要,您可以使用 random.sample

some_set_of_stuff = set(...)
randomized = random.sample(some_set_of_stuff, len(some_set_of_stuff))

关于python - Python 集合的随机化程度如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34477954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com