我正在创建一个程序,该程序将随机播放100个随机数的列表,然后交换/混洗1000次,而不使用" shuffle"功能。问题是,我的程序无法正常工作。这些数字根本没有彻底改变,我无法找到一种方法来使用for循环来将数字洗牌超过1000次。帮助将不胜感激。
import random
originalnum_list=[]
num_list=[]
num_list1 = []
num_list2 = []
for num in range(100):
num_list1.append(random.randrange(0,51))
for num in range(100):
num_list2.append(random.randrange(0,51))
originalnum_list.append(num_list1)
originalnum_list.append(num_list2)
print "The computer entered: " + str(originalnum_list)
for shuffle in range(0,1001):
shuffle=num_list1
num_list1=num_list2
num_list2=shuffle
num_list.append(num_list1)
num_list.append(num_list2)
print "The shuffeled result is: " + str(num_list)
答案 0 :(得分:1)
所以我的理解是你想要一个程序拿一个列表然后随机化该列表内容的位置,对吗?
import random
def list_randomizer(lst):
result = []
while len(lst) > 0:
index = random.randrange(0,len(lst))
result.append(lst.pop(index))
return result
此功能将随机播放您放入的任何列表。您可以通过for循环轻松地将其随机播放多次。
for i in range(1000):
list = list_randomizer(list)
这将继续将更新的列表传递给函数,使其重新洗牌1000次。
答案 1 :(得分:0)
这只是交换num_list1和num_list2
for shuffle in range(0,1001):
shuffle=num_list1
num_list1=num_list2
num_list2=shuffle
如果你偶数次这样做,你最终会得到一个相同的列表。
shuffle 应该如何工作?它需要公平吗?