有没有办法将主循环中的子循环顺序随机化?

2024-09-29 21:27:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有6个不同的块(用于循环),它们是主for循环的一部分。每个区块由6个随机选取的刺激物组成,应该呈现12次。块的呈现应以随机顺序进行

到目前为止,我在六个区块周围创建了一个主循环,重复12次,我计划用PsychoPy的TrialHandler将区块顺序随机化。然而,这并不是它应该的工作方式,我必须找到另一种方式。我在想:

  1. 我可以创建一个列表(由数字或字符串组成)并将该列表洗牌,然后为子循环创建if条件,即“如果”Block1是list[0],那么for循环Block1将被初始化。类似的操作是否有效?如果有效,我如何实现它,因为在理想情况下,我希望用列表生成子循环的顺序。

  2. 另一个想法与TrialHandler有关,因此特定于PsychoPy。我想知道是否有可能创建一个包含不同块的excel文件,并将其添加到主循环的条件参数中。如果每个块都是一行,PsychoPy将能够随机化这些块。但是,我不确定这是否有效,以及它是如何工作的e块可以添加到excel文件中。

这些解决方案中有没有一个看起来合理,或者有没有其他方法可以实现随机化


Tags: 文件字符串列表for顺序方式数字区块
1条回答
网友
1楼 · 发布于 2024-09-29 21:27:53

由于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

相关问题 更多 >

    热门问题