y3t*_*fgr 2 python shuffle psychopy
我有一个关于改组的问题,但首先,这是我的代码:
from psychopy import visual, event, gui
import random, os
from random import shuffle
from PIL import Image
import glob
a = glob.glob("DDtest/targetimagelist1/*")
b = glob.glob("DDtest/distractorimagelist1/*")
target = a
distractor = b
pos1 = [-.05,-.05]
pos2 = [.05, .05]
shuffle(a)
shuffle(b)
def loop_function_bro():
win = visual.Window(size=(1280, 800), fullscr=True, screen=0, monitor='testMonitor', color=[-1,-1,-1], colorSpace='rgb')
distractorstim = visual.ImageStim(win=win,
image= distractor[i], mask=None,
ori=0, pos=pos1, size=[0.5,0.5],
color=[1,1,1], colorSpace='rgb', opacity=1,
flipHoriz=False, flipVert=False,
texRes=128, interpolate=True, depth=-1.0)
targetstim= visual.ImageStim(win=win,
image= target[i], mask=None,
ori=0, pos=pos2, size=[0.5,0.5],
color=[1,1,1], colorSpace='rgb', opacity=1,
flipHoriz=False, flipVert=False,
texRes=128, interpolate=True, depth=-2.0)
distractorstim.setAutoDraw(True)
targetstim.setAutoDraw(True)
win.flip()
event.waitKeys(keyList = ['space'])
for i in range (2):
loop_function_bro()
Run Code Online (Sandbox Code Playgroud)
此代码随机地移动一堆图像并显示它们.但是,我希望它以相同的顺序对图像进行洗牌,以便两个列表以相同的随机顺序显示.有办法做到这一点吗?
干杯,:)
小智 6
我能想到的来处理这个最简单的方法是使用索引的单独列表,随机播放它来代替.
indices = list(xrange(len(a))) # Or just range(len(a)) in Python 2
shuffle(indices)
Run Code Online (Sandbox Code Playgroud)