如何通过字符串从列表中选择一个项目

2024-06-01 21:26:55 发布

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

我试图使一个应用程序,以找到一个文件夹中最新的动画插曲。 我现在有一个如下格式的项目列表: episode_name - ep_numnaruto - 11naruto - 12bleach - 11bleach - 12等,我把它们都保存到一个列表中,但我想不出一种方法来查找所有系列的最新插曲。你知道吗

因此,我需要一种方法来创建一个新的列表,其中每个系列只有:anime_name - latest_ep_num,这样我就可以检查某个网站上是否有新的插曲。你知道吗


Tags: 项目方法name文件夹应用程序列表格式动画
2条回答

你可以用下面的方法把马克斯弄出来

max(anime_list, key = lambda x: int(x.split('-')[1]))

以及一个示例来区分不同的系列,并获得每个系列的最大值:

anime_list = ['naruto - 11', 'naruto - 12', 'naruto - 13','not naruto - 12','not naruto - 13']
import itertools
g = itertools.groupby(anime_list,lambda x: x.split('-')[0])
f = [(series, max(list(episode),key=lambda x: x.split('-')[1])) for series,episode in g]

如果你的剧集名称中有破折号,而不是在剧集编号之前,你可以使用下面的helper函数来分隔剧集名称/编号。你知道吗

import re

episode = 'naruto - o no dash - 12'

def split_episodes(episode):
    ep = re.split('( - )',episode)
    return [''.join(ep[0:-2]), ep[-1]]

print(split_episodes(episode))

假设你有:

l = ['naruto - 11',  'naruto - 13', 'naruto - 12']
max(l, key = lambda x: int(x.split('- ')[1]))

归功于@Solaxun。我最初是这样做的:

l = ['naruto - 11',  'naruto - 13', 'naruto - 12']
sorted([i.split('- ') for i in l])[-1]

什么不比第一种选择好。你知道吗

相关问题 更多 >