cf.FieldList.sort¶
-
FieldList.
sort
(cmp=None, key=None, reverse=False)[source]¶ Stable sort of the field list IN PLACE
By default the field list is sorted by the identities of its fields.
New in version 1.0.4.
Examples 1: >>> fl.sort()
Parameters: - cmp: function, optional
Specifies a custom comparison function of two arguments (iterable elements) which should return a negative, zero or positive number depending on whether the first argument is considered smaller than, equal to, or larger than the second argument. The default value is
None
.- Example:
cmp=lambda x,y: cmp(x.lower(), y.lower())
.
- key: function, optional
Specify a function of one argument that is used to extract a comparison key from each list element. By default fiel list is sorted by field identity, i.e. the default value of key is
lambda f: f.identity()
.- reverse:
bool
, optional If set to True, then the list elements are sorted as if each comparison were reversed.
Returns: Examples 2: >>> fl [<CF Field: eastward_wind(time(3), air_pressure(5), grid_latitude(110), grid_longitude(106)) m s-1>, <CF Field: ocean_meridional_overturning_streamfunction(time(12), region(4), depth(40), latitude(180)) m3 s-1>, <CF Field: air_temperature(time(12), latitude(64), longitude(128)) K>, <CF Field: eastward_wind(time(3), air_pressure(5), grid_latitude(110), grid_longitude(106)) m s-1>] >>> fl.sort() >>> fl [<CF Field: air_temperature(time(12), latitude(64), longitude(128)) K>, <CF Field: eastward_wind(time(3), air_pressure(5), grid_latitude(110), grid_longitude(106)) m s-1>, <CF Field: eastward_wind(time(3), air_pressure(5), grid_latitude(110), grid_longitude(106)) m s-1>, <CF Field: ocean_meridional_overturning_streamfunction(time(12), region(4), depth(40), latitude(180)) m3 s-1>] >>> fl.sort(reverse=True) >>> fl [<CF Field: ocean_meridional_overturning_streamfunction(time(12), region(4), depth(40), latitude(180)) m3 s-1>, <CF Field: eastward_wind(time(3), air_pressure(5), grid_latitude(110), grid_longitude(106)) m s-1>, <CF Field: eastward_wind(time(3), air_pressure(5), grid_latitude(110), grid_longitude(106)) m s-1>, <CF Field: air_temperature(time(12), latitude(64), longitude(128)) K>]
>>> [f.datum(0) for f in fl] [masked, -0.12850454449653625, -0.12850454449653625, 236.51275634765625] >>> fl.sort(key=lambda f: f.datum(0), reverse=True) >>> [f.datum(0) for f in fl] [masked, 236.51275634765625, -0.12850454449653625, -0.12850454449653625]
>>> from operator import attrgetter >>> [f.long_name for f in fl] ['Meridional Overturning Streamfunction', 'U COMPNT OF WIND ON PRESSURE LEVELS', 'U COMPNT OF WIND ON PRESSURE LEVELS', 'air_temperature'] >>> fl.sort(cmp=lambda x,y: cmp(x.lower(), y.lower()), key=attrgetter('long_name')) >>> [f.long_name for f in fl] ['air_temperature', 'Meridional Overturning Streamfunction', 'U COMPNT OF WIND ON PRESSURE LEVELS', 'U COMPNT OF WIND ON PRESSURE LEVELS']