如何从事物列表中获得最高层次?

2024-05-23 23:11:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在从API获取数据,我想知道是否有一种方法可以从列表中获取多个最高层,如下所示?(字符串的开头是事物的类型,结尾是层次)

[金合欢树1”,“金合欢树10”,“金合欢树11”,“金合欢树2”,“金合欢树3”,“金合欢树4”,“金合欢树5”,“金合欢树6”,“金合欢树7”,“金合欢树8”,“金合欢树9”,“桦树1”,“桦树10”,“桦树11”,“桦树2”,“桦树3”,“桦树4”,“桦树5”,“桦树6”,“桦树7”,“桦树8”,“桦树9”,“火焰1”,“火焰2”,“火焰5”,“火焰6”,“火焰6”,“火焰6”,“火焰6”,“火焰6”,“火焰6”,“火焰6”,“火焰6”,“火焰6”,“火焰6”,“火焰6”,“火焰6”,“火焰6”,“火焰7”,“火焰”LAZE_8',“BLAZE_9']


Tags: 方法字符串api类型列表结尾事物火焰
1条回答
网友
1楼 · 发布于 2024-05-23 23:11:51

您可以定义keyof max函数:

>>> max(minions, key=lambda m: int(m.split('_')[1]))
'ACACIA_11'

要获得每种类型的最大值,可以使用itertools.groupby

from itertools import groupby

type_getter = lambda x: x.split('_')[0]
tire_getter = lambda m: int(m.split('_')[1])

{g: max(v, key=tire_getter) for g, v in groupby(minions, type_getter)}

输出:

{'ACACIA': 'ACACIA_11', 'BIRCH': 'BIRCH_11', 'BLAZE': 'BLAZE_10'}

相关问题 更多 >