I'm looking for the best way to reference a layer in the TOC using arcpy and, if it is possible, that is different than the following:

```
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd)[0]
layers = arcpy.mapping.ListLayers(df)

```

Reference layers:

```
mylayer1 = layers[0]
mylayer2 = layers[1]
...

```

It comes out that in some cases I may not know the index in the list [0], [1](https://gis.stackexchange.com/questions/27093/how-to-reference-a-specific-layer-in-a-dataframe-with-arcpy), etc... so I need to reference it using other identifiers.

In previous versions I used to reference the layer first as a file in disk, then add the layer in the TOC and, at last, reference it using the same variable. However, in versions such as 10.2, it does not work and I need to reference in other ways, but the way explained in the example above does not convince me.
Other examples such as the ones explained in the following post are usefull in some cases 
[(click here for an example](https://gis.stackexchange.com/questions/27093/how-to-reference-a-specific-layer-in-a-dataframe-with-arcpy) but I think there should be a simplest way that does not require loop structures...

**So, is there a better way?**