i have code , want know how append list can sort number, high low
data=['red' '1', 'blue' '8', 'green' '2', 'orange' '6']
i know how sort list number high low changing items in list number before colour can sorted high low.
here how list should be:
data=['1' 'red', '8' 'blue', '2' 'green' ,'6' 'orange']
if have 8 separate items , want sort numbers high low can group them using iter, reversing order:
data=['red', '1', 'blue', '8', 'green' ,'2', 'orange','6'] itertools import chain = iter(data) grouped = zip(it, it) data = sorted(((b, a) a,b in grouped), key=lambda x: int(x[0]),reverse=true)) print(list(chain(*data))) ['8', 'blue', '2', 'green', '1', 'red']
but better off keeping elements in tuples:
print(data) [('8', 'blue'), ('2', 'green'), ('1', 'red')]
if data posted use itertools create pairings, ad sorting correctly casting digits int:
from itertools import dropwhile dw, takewhile tw data=['red' '1', 'blue' '8', 'green' '2', 'orange' '6'] data = sorted((("".join(dw(str.isalpha,s)), "".join(tw(str.isalpha,s))) s in data),key=lambda x: int(x[0]),reverse=true) print(data) [('8', 'blue'), ('6', 'orange'), ('2', 'green'), ('1', 'red')]
or rejoin strings:
print(["".join(tup) tup in data]) ['8blue', '2green', '1red']
Comments
Post a Comment