how do you alter items in a list in python? -


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