The List Object

The list object is used to define lists of stimuli and allocate those stimuli to experimental conditions and trials. It can also be used to designate different procedures to run depending on the experimental condition for a particular trial. Lists at first sight seem fairly simple, and they can be kept that way. But as soon as your experimental needs become more complex, lists can start to seem like a labyrinth. The key, as always, is to start simple, and add one feature or level of complexity at a time.

Example 1. A simple list

The list is organised with columns corresponding to attributes and rows corresponding to levels. The attributes' names are listed across the top of the list. The first attribute gives the relative weight that each row of the list should get. If the list is fully sampled, then this is the number of times that the superordinate procedure (PicProc in the example above) would sample each row. The second attribute contains the name of the subordinate procedure that should be executed each time the list sampled (typically each experimental trial). Each row of the list could reference a different subordinate procedure, but in this example, the procedure is the same for each row. The fourth to sixth attributes in this list were added and named by the user (by right mouse clicking on the list). These can contain any trial-dependent or condition-dependent values that are used in the subordinate procedure. In the example above, attributes contain the filenames for images and sounds that will be played in each experimental trial, as well as the keyboard key that designates the correct subject response. These attributes are then referenced by the individual objects that make up the subordinate procedure.

Example 2. A list with nesting

In this example, two lists containing words and nonwords respectively, are nested within a superordinate list. The superordinate list specifies the order of conditions in the experiment, but does not contain the actual stimuli, The stimuli are contained in the subordinate nested lists. The names of nested lists to refer to is specified in the Nested attribute column of TrialList. In the Stim1 and Stim2 attribute columns of TrialList, reference is made to attributes in the nested lists by enclosing the attribute names in square brackets. The numbers following the colons specify which value to use if more than one value is retrieved from the same attribute of the same nested list.

CAUTION: When nesting lists, the way in which sampling is done from the nested lists is not always obvious. Be sure to check thoroughly that your stimuli are being sampled correctly.

List properties

Each list has a number of useful properties which govern the way in which rows are selected from the list, and how many loops are made through the list before Eprime moves to the next object in the procedure.


The Selection Tab allows you to designate how rows are selected in the list. When using Counterbalance, Offset or Permutation, you can specify an experiment startup variable, such as subject number, upon which the ordering is based.


The Reset/Exit Tab allows you to specify how many times i) Eprime should sample from the list before it resets the sampling record - typically this will be "All samples"- and ii) EPrime should sample from the list before exiting the list and going to the next object in the current procedure. EPrime can also be configured to exit from the list after a given number of seconds.