Rectangle object not iterable
Hi all,
This supposed to be an easy question. I'm trying to looping two different object (rectangle and circle). I've done so far :
stim = {'stim1': expyriment.stimuli.Rectangle([150,150],position = [0,0], colour = expyriment.misc.constants.C_GREEN),
'stim2': expyriment.stimuli.Rectangle([150,150],position = [0,0], colour = expyriment.misc.constants.C_YELLOW),
'stim3': expyriment.stimuli.Circle(radius=100,position = [0,0], colour = expyriment.misc.constants.C_GREEN),
'stim4': expyriment.stimuli.Circle(radius=100,position = [0,0], colour = expyriment.misc.constants.C_YELLOW)}
for st, sm in stim.iteritems():
print(sm)
<expyriment.stimuli._rectangle.Rectangle object at 0x000000000B15D828>
<expyriment.stimuli._rectangle.Rectangle object at 0x000000000B15D908>
<expyriment.stimuli._circle.Circle object at 0x000000000B15D860>
<expyriment.stimuli._circle.Circle object at 0x000000000B15D7F0>
em = expyriment.design.randomize.rand_element(sm)
TypeError: 'Circle' object is not iterable
em = expyriment.design.randomize.shuffle_list(sm)
TypeError: The parameter 'list_' is a Circle, but has to be list.
There is a better solution for this problem?
Thanks
tanto

Comments
Hi Tanto,
Both the functions work on lists, not the elements of the list. So if, you want to randomly select an item from the list
stim, you have to callexpyriment.design.randomize.rand_element()on the list, not the elements. The same goes forexpyriment.design.randomize.shuffle_list(). So, you wouldn't need to loop over the items. Does that make sense?Eduard
Hi Eduard.
Thanks for your help!.I just realize that.
I've change dict with list and iterate with "pres_stim = stim[trial]".
Thanks
Tanto