3.6. index_natsorted()

natsort.index_natsorted(seq, key=None, number_type=<type 'float'>, signed=None, exp=None, reverse=False, as_path=None, alg=0)

Return the list of the indexes used to sort the input sequence.

Sorts a sequence naturally, but returns a list of sorted the indexes and not the sorted list. This list of indexes can be used to sort multiple lists by the sorted order of the given sequence.

Parameters:

seq : iterable

The sequence to sort.

key : callable, optional

A key used to determine how to sort each element of the sequence. It is not applied recursively. It should accept a single argument and return a single value.

number_type : {None, float, int}, optional

Depreciated as of version 3.5.0 and will become an undocumented keyword-only argument in 4.0.0. Please use the alg argument for all future development. See ns class documentation for details.

signed : {True, False}, optional

Depreciated as of version 3.5.0 and will become an undocumented keyword-only argument in 4.0.0. Please use the alg argument for all future development. See ns class documentation for details.

exp : {True, False}, optional

Depreciated as of version 3.5.0 and will become an undocumented keyword-only argument in 4.0.0. Please use the alg argument for all future development. See ns class documentation for details.

reverse : {True, False}, optional

Return the list in reversed sorted order. The default is False.

as_path : {True, False}, optional

Depreciated as of version 3.5.0 and will become an undocumented keyword-only argument in 4.0.0. Please use the alg argument for all future development. See ns class documentation for details.

alg : ns enum, optional

This option is used to control which algorithm natsort uses when sorting. For details into these options, please see the ns class documentation. The default is ns.FLOAT.

Returns:

out : tuple

The ordered indexes of the sequence.

Examples

Use index_natsorted if you want to sort multiple lists by the sorted order of one list:

>>> a = ['num3', 'num5', 'num2']
>>> b = ['foo', 'bar', 'baz']
>>> index = index_natsorted(a)
>>> index
[2, 0, 1]
>>> # Sort both lists by the sort order of a
>>> order_by_index(a, index)
[u'num2', u'num3', u'num5']
>>> order_by_index(b, index)
[u'baz', u'foo', u'bar']