To iterate over the layers in the map, get a reference to the current map document and list the layers within it:
mxd = arcpy.mapping.MapDocument("CURRENT")
layers = arcpy.mapping.ListLayers(mxd):
for layer in layers:
# do something with 'layer'
To just get the number of selected features, try leveraging the Describe object's fidSet property:
desc = arcpy.Describe(layer)
sel_count = len(desc.fidSet.split(";"))
You can check this count to determine whether any features are selected, or just do if desc.fidSet: which should accomplish the same.
To get a particular field's values for each selected feature within a layer, use a SearchCursor (either the arcpy.SearchCursor or arcpy.da.SearchCursor variety), which honors the selection on layers. See the other questions linked in the comments above.
Interactive session in ArcMap's Python window to demonstrate how you might do this:
>>> mxd = arcpy.mapping.MapDocument("CURRENT")
>>> layers = arcpy.mapping.ListLayers(mxd)
>>> for layer in layers:
... desc = arcpy.Describe(layer)
... if desc.fidSet:
... print layer.name, "has {0} features selected:".format(len(desc.fidSet.split(';')))
... for row in arcpy.da.SearchCursor(layer, "*"):
... print row
...
atlantic_hurricanes_2000 has 2 features selected:
(220, (-86.60000000039969, 30.500000000299735), datetime.datetime(2000, 9, 22, 0, 0), u'12:00:00', 30.5, -86.6, 1006.0, 35.0, u'tropical storm', u'Helene', datetime.datetime(2000, 9, 22, 12, 0))
(221, (-85.40000000009991, 31.599999999900035), datetime.datetime(2000, 9, 22, 0, 0), u'18:00:00', 31.6, -85.4, 1010.0, 25.0, u'tropical depression', u'Helene', datetime.datetime(2000, 9, 22, 18, 0))
atlantic_hurricanes_2000_lines has 1 features selected:
(8, (-70.38282674742592, 29.09090367649801), 84.23001922499401, u'Helene', 34.76190476190476, None)
Can I get a list of my selected features in ArcGIS by using Python code?
Also see: How to access data from a selected feature in ArcGIS 10?
– Axel Esteban Oct 02 '13 at 17:23