【发布时间】:2015-11-10 02:41:39
【问题描述】:
我正在生成随机列表,但由于某种原因,这里的所有三个列表都以相同的顺序结束。两个问题:
首先,这段代码有什么问题,使得三个列表具有相同的顺序(即 target1 = target2 = target3 和 jitter1 = jitter2 = jitter3)?
其次,更重要的是,这是生成这些随机列表的最佳方式吗?目的是能够在每次有新主题进入时运行此脚本,以便每个主题都有三个与他/她相关联的随机列表。 shuffle 函数是否适合用于此目的(即脚本中的随机,如果我在不同的日子运行脚本几百次不同的时间,也会有不同的随机)?
非常感谢您的帮助。
import random
import sys
import csv
N = 200 # number of targets
l = 3 # number of lists to generate
l += 1
# generate lists
targets_M = ['stimuli/Hangul_M'+str(x)+'.png' for x in range(N/2)]
targets_F = ['stimuli/Hangul_F'+str(x)+'.png' for x in range(N/2)]
targets_null = targets_M + targets_F
delays = list(range(3, 13, 1)) # 3 : 12, n = 10
jitter_null = delays * 20
# randomize lists
for j in range(1,l):
globals()["targets"+str(j)] = targets_null
random.shuffle(globals()["targets"+str(j)])
globals()["jitter"+str(j)] = jitter_null
random.shuffle(globals()["jitter"+str(j)])
【问题讨论】:
-
你试过用
random.seed([x])初始化随机生成器吗?