shu*_*ash 3 python sorting list
我有一个包含以下内容的列表
a= [june,32,may,67,april,1,dec,99]
Run Code Online (Sandbox Code Playgroud)
我想按降序排序数字,但它应显示相应的对:
Output Expected
----------------
dec,99,may,67,june,32,april,1
Run Code Online (Sandbox Code Playgroud)
我尝试使用a.sort(reverse=True)列表中的命令排序而不是获得预期的输出,这个令人困惑很多.
您可以使用元组列表:
a = ['june', '32', 'may', '67', 'april', '01', 'dec', '99']
zipper = zip(a[::2], a[1::2])
res = sorted(zipper, key=lambda x: -int(x[1])) # or, int(x[1]) with reverse=True
print(res)
[('dec', '99'), ('may', '67'), ('june', '32'), ('april', '01')]
Run Code Online (Sandbox Code Playgroud)
如果您需要展平,请使用itertools.chain:
from itertools import chain
res = list(chain.from_iterable(res))
['dec', '99', 'may', '67', 'june', '32', 'april', '01']
Run Code Online (Sandbox Code Playgroud)