随机化在Python字符串列表的最佳方法(Best way to randomize a list

2019-06-23 18:07发布

我接收输入的字符串列表,需要用这些相同的字符串,但是以随机顺序返回一个列表。 我必须允许重复 - 同一个字符串可以在输入一次或多次出现,并且必须出现在输出相同的次数。

我觉得那样做有几个“蛮力”方式(使用循环上帝保佑),我目前使用其中之一。 然而,知道的Python有可能是一个很酷的一行就完成任务了吧?

Answer 1:

>>> 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]


Answer 2:

看起来这是最简单的方法,如果不是最真正随机的( 这个问题更全面地解释了限制): http://docs.python.org/library/random.html#random.shuffle



Answer 3:

给定一个字符串 ,这里是一个班轮:

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


Answer 4:

你必须阅读的字符串到一个数组,然后使用一个洗牌的算法。 我推荐费雪耶茨洗牌



Answer 5:

import random

b = []
a = int(input(print("How many items you want to shuffle? ")))
for i in range(0, a):
    n = input('Please enter a item: ')
    b.append(n)

random.shuffle(b)

print(b)


文章来源: Best way to randomize a list of strings in Python