# How to | Work with Nested Lists

Nested lists are lists within a list; they are the principal structure for data in the Wolfram Language and allow for high-dimension arrays and ragged datasets as well as common uses such as matrices.

Create a list of lists to work with:

 In[1]:=
 Out[1]=

Matrices in the Wolfram Language are represented as nested lists. Note that each row corresponds to a sublist in the nested list:

 In[2]:=
 Out[2]//MatrixForm=

Use [[]], the short form of the Part function, to get the second row:

 In[3]:=
 Out[3]=

From row 2, get element 3:

 In[4]:=
 Out[4]=

Get element 3 from each row:

 In[5]:=
 Out[5]=

Use Flatten to remove the nesting:

 In[6]:=
 Out[6]=

Display the flattened data as a column:

 In[7]:=
 Out[7]//MatrixForm=

For comparison, to display the flattened data as a row, add {}:

 In[8]:=
 Out[8]//MatrixForm=

You can operate on the individual sublists of a nested list or on the nested list as a whole.

Set up a dataset:

 In[1]:=
 Out[1]=
 In[2]:=
 Out[2]//MatrixForm=

Most functions map over each sublist within a nested list.

Create four plots from the rows in the dataset:

 In[3]:=
 Out[3]=

Most descriptive statistics functions operate by columns.

Take the mean by column:

 In[4]:=
 Out[4]=

Get the mean of all the numbers by flattening the list:

 In[5]:=
 Out[5]=

Create a doubly nested list:

 In[1]:=
 Out[1]//MatrixForm=

Mean now lists the means by each individual nested sublist:

 In[2]:=
 Out[2]//MatrixForm=

Use Flatten to obtain the mean of the entire dataset:

 In[3]:=
 Out[3]=