我有6个不同的块(for循环),它们是main for循环的一部分。每个块由6个随机选择的刺激组成,应该呈现十二次。块的显示应以随机顺序进行。
到目前为止,我围绕六个块创建了一个主循环,该主循环重复了12次,并且我计划使用PsychoPy的TrialHandler随机分配块的顺序。但是,这不能按应有的方式工作,我必须找出另一种方式。我在想:
我可以创建一个列表(由数字或字符串组成)并重新排列此列表,然后为子循环创建if条件,即“如果“ Block1”为list [0],则for循环Block1为
另一个想法涉及TrialHandler,因此特定于PsychoPy。我想知道是否可以创建一个包含不同块的Excel文件,并将其添加到主循环的conditions参数中。如果每个块都是一行,PsychoPy将能够将它们随机化。但是,我不确定这是否可行以及如何将这些块添加到excel文件中。
这些解决方案中的任何一个看起来合理吗,还是有另一种方法来实现随机化?
答案 0 :(得分:1)
由于Python函数本质上是对象,因此您可以将它们分配给列表或字典:
from random import randint
def foo():
# do things
print('foo')
def bar():
print('bar')
funcs = [foo, bar]
random_int = randint(0, len(funcs)-1) # generate a int between 0 and last entry of the list
funcs[randint]() # this calls the function in position randon_int