psychopy.org | Reference | Downloads | Github

Create stimulus lists for blocks from 1 big stimulus list

Hi everyone!

I am finishing programming a recognition memory study where monetary values are paired with words. In total, the task has 8 blocks (1 block = study + test). Everything progresses through the task correctly, but the main issue right now is that the words presented during study and test are the same across all the blocks. So when it proceeds to the next block, a new set of old and new words aren’t presented from the stimulus list.

One idea I thought of, which is the reason for my post, is to see if there is a way to create lists for each block from the main stimulus list before the experiment starts. The main file I’m reading in with the word stimuli has about 1,400 words. Each block should have 80 words (40 at study and 40 additional words for distractors at test). If it is possible to make eight 80 word lists from the main stimulus set before the experiment starts, then I could just read those into each block so I wouldn’t have to change the layout of the task in builder.

Let me know how one would do this or if there is an easier way to achieve this. Also, let me know if you’d like to see the current code/builder layout I have.

Thanks in advance!

Helllo,

you could split your mega-list into eight sublists and read one for each block or you could use the start row:end row parameter to read only parts of your list.

Btw, 1400 trials makes a rather long experiment. Are you not afraid that your participants will lose their concentration during the run of the experiment?

Best wishes Jens

I often use one loop to read rows from a spreadsheet into arrays and then a second loop that presents items from the arrays.

Also I sometimes have one loop for all blocks that changes block type every n trials.

Hi Jens,

Thanks for the suggestions! There actually aren’t 1400 trials in my task, I just have a big list of words that I am randomly sampling from.

I thought about the start row:end row in the builder loop, but even though the words would be randomized, I would still only be sampling from a specific range of the list.

Like you suggested, I think the best option is to have 8 sublists. I don’t want to do that in Excel prior to the experiment because then all the participants will see the same sets of words but just randomized. That’s why I was wondering if there was some easy python code I could write in before the experiment starts that would sample from the mega-list to make 8 separate sublists that could then be read into each block.

Hello,

well, you could first randomize your list and then use the start row:endrow feature to create the different lists.

Best wishes Jens