download:
!pip install sortingx==1.3.2 # in jupyter
pip install sortingx==1.3.2 # in cmd
load package:
import sortingx as six # reduce times of __len__ returned length of __iterable than previous versions
most use:
data = [('Alex', 97, 90, 98, 95), ('Jack', 97, 88, 98, 92), ('Peter', 92, 95, 92, 96), ('Li', 97, 89, 98, 92)] # list
result = sorted(data, key=lambda x: x[1], reverse=True)
output = six.bubble(data, key=lambda x: x[1], reverse=True)
print(output == result, data == result) # True, True
more cases (recommend tuple):
data = (('Alex', 97, 90, 98, 95), ('Jack', 97, 88, 98, 92), ('Peter', 92, 95, 92, 96), ('Li', 97, 89, 98, 92)) # tuple
# data = {('Alex', 97, 90, 98, 95), ('Jack', 97, 88, 98, 92), ('Peter', 92, 95, 92, 96), ('Li', 97, 89, 98, 92)} # set
output = six.bubble(data, key=lambda x: x[1], reverse=True)
result = sorted(data, key=lambda x: x[1], reverse=True)
print(output == result) # True
The current version support the dict, dict_keys, dict_values, dict_items:
zero = {'Alex': 100, 'Jack': 97, 'Peter': 88, 'Li': 98}
one = six.bubble(zero) # dict
two = six.insert(zero.keys(), key=str.lower) # dict_keys
three = six.shell(zero.values()) # dict_values
four = six.heap(zero.items(), key=lambda x: x[0]) # sort by key
five = six.quick(zero.items(), key=lambda x: x[1]) # sort by value
some cases for str, range, zip:
str_ = six.bubble("barzilar_borwein") # str
range_l = six.merge(range(1 << 20), reverse=True) # long range
range_ = six.shell(range(9)) # range
zip_ = six.quick(zip(['1','3','2'])) # zip