根据梁山好汉的武力值排交椅:python知识点串联sorted,enumerate,zip,list comprehension

故事发生的背景是这样的,水泊梁山好汉武松,鲁智深,杨志三人在上梁山前,共同落草过二龙山,好汉们需要根据其战斗力的高低来排座次,战斗力最高的坐第一把交椅,其次的坐第二把交椅,以此类推,这样才能服众。

好汉们的名字存入字符串列表,这里我用了他们的绰号:花和尚(鲁智深)、青面兽(杨志)、行者(武松)

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)]

输出如下

根据梁山好汉的武力值排交椅:python知识点串联sorted,enumerate,zip,list comprehension_第1张图片

摸鱼结束,可在评论区回复你更喜欢哪一行fancy one-line~ 

你可能感兴趣的:(python)