我接收输入的字符串列表,需要用这些相同的字符串,但是以随机顺序返回一个列表。 我必须允许重复 - 同一个字符串可以在输入一次或多次出现,并且必须出现在输出相同的次数。
我觉得那样做有几个“蛮力”方式(使用循环上帝保佑),我目前使用其中之一。 然而,知道的Python有可能是一个很酷的一行就完成任务了吧?
我接收输入的字符串列表,需要用这些相同的字符串,但是以随机顺序返回一个列表。 我必须允许重复 - 同一个字符串可以在输入一次或多次出现,并且必须出现在输出相同的次数。
我觉得那样做有几个“蛮力”方式(使用循环上帝保佑),我目前使用其中之一。 然而,知道的Python有可能是一个很酷的一行就完成任务了吧?
>>> 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]
看起来这是最简单的方法,如果不是最真正随机的( 这个问题更全面地解释了限制): http://docs.python.org/library/random.html#random.shuffle
给定一个字符串项 ,这里是一个班轮:
''.join([str(w) for w in random.sample(item, len(item))])
你必须阅读的字符串到一个数组,然后使用一个洗牌的算法。 我推荐费雪耶茨洗牌
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)