在Python中随机化字符串列表的最佳方法

85 投票
6 回答
116548 浏览
提问于 2025-04-15 12:23

我收到一个字符串列表作为输入,需要返回一个这些字符串的随机顺序列表。我要允许重复的字符串——同样的字符串可以在输入中出现一次或多次,并且在输出中也要出现相同的次数。

我看到有几种“暴力”方法可以做到这一点(使用循环,真是让人头疼),我现在正在用其中一种。不过,既然我知道Python,应该有一种很酷的单行代码可以完成这个任务,对吧?

6 个回答

7

给定一个字符串 item,这里有一个一行代码的解决方案:

''.join([str(w) for w in random.sample(item, len(item))])
13

看起来这就是最简单的方法,虽然不一定是最随机的方式(这个问题更详细地解释了它的局限性):http://docs.python.org/library/random.html#random.shuffle

217

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,不知道该怎么解决。比如,有人可能在使用某个功能时,发现它并没有按照预期工作,或者出现了错误信息。这时候,我们就需要去查找解决方案,看看别人是怎么处理类似问题的。

在网上,有很多开发者分享他们的经验和解决方案,像StackOverflow这样的平台就是一个很好的地方。在这里,你可以找到很多关于编程的问题和答案,甚至是一些代码示例,帮助你更好地理解和解决问题。

总之,遇到问题时,不要着急,先去查找资料,看看有没有人遇到过类似的情况,找到合适的解决办法。

>>> import random
>>> x = [1, 2, 3, 4, 3, 4]
>>> random.shuffle(x)
>>> x
[4, 4, 3, 1, 2, 3]
>>> random.shuffle(x)
>>> x
[3, 4, 2, 1, 3, 4]

撰写回答