故事发生的背景是这样的,水泊梁山好汉武松,鲁智深,杨志三人在上梁山前,共同落草过二龙山,好汉们需要根据其战斗力的高低来排座次,战斗力最高的坐第一把交椅,其次的坐第二把交椅,以此类推,这样才能服众。
好汉们的名字存入字符串列表,这里我用了他们的绰号:花和尚(鲁智深)、青面兽(杨志)、行者(武松)
heros = ["HuaHeShang","QingMianShou","XingZhe"]
好汉们的武力值存入整数列表,和上一个列表一一对应,数值越高战斗力越强
combat_value = [9,8,10]
好汉们喜欢简洁的Python代码,如何一行代码实现排序呢?这里提供
1. sorted + enumerate + list comprehension
2. sorted + zip + list comprehension
这样的两种方案
方案一(enumerate)
代码如下
sorted_heros = [tu[1] for tu in sorted(enumerate(heros),key = lambda tu: combat_value[tu[0]],reverse=True)]
输出如下
方案二
代码如下
sorted_heros = [tu[0] for tu in sorted(zip(heros,combat_value),key=lambda tu:tu[1],reverse=True)]
输出如下
摸鱼结束,可在评论区回复你更喜欢哪一行fancy one-line~