我有一个视频链接列表。其中一些链接几乎是重复的,这意味着它们包含几乎相同的链接,只是它有x_480.mp4
而不是x.mp4
。不是所有链接的末尾都有“\u 480”。你知道吗
如何清理列表以只获取以_480.mp4
结尾的,删除其备用版本的,并保留没有_480.mp4
版本的?你知道吗
示例:
videos=["VfeHB0sga.mp4","G9uKZiNm.mp4","VfeHB0sga_480.mp4","kvlX4Fa4.mp4"]
预期结果:
["G9uKZiNm.mp4","VfeHB0sga_480.mp4","kvlX4Fa4.mp4"]`
注意:所有链接都以.mp4
结尾。而且,没有原始的_480.mp4
。你知道吗
顺便说一下len(videos)
是243。你知道吗
这应该管用。它在视频中循环,直到找到一个以
"_480.mp4"
结尾的视频。然后它拆分标题并获取起始位,然后添加".mp4"
以创建要删除的视频标题。然后它再次循环浏览视频并删除带有该标题的视频。你知道吗我可能会走
dict
路线,不必检查列表中是否存在项(对于大型列表,这将成为一个(性能)问题)。例如:这是一种简洁的说法。你知道吗
构造一个字典,它的键是incoming
v
,对于以"_480.mp4"
结尾的值,没有最后8个字符,或者只是去掉最后4个字符,并为完整的incoming字符串赋值。你知道吗只给我那个字典的值,因为输入是一个
list
,所以我把它传递给一个列表构造函数,以获得与输出相同的类型。你知道吗或者为了便于阅读而分解,它可能看起来像这样:
它使用虚拟基名称(剥离
_480.mp4
或.mp4
)作为字典键。因为您不关心结果列表顺序,所以我们确保_480
后缀项在“plain”项之后sorted
。这样,如果它们出现,就会覆盖为没有_480
后缀的值创建的键。你知道吗您可以用两行代码完成:
第一行使用集合理解来提取所有
_480.mp4
文件名,将其转换为不需要的短版本。他们是 存储在set
中以便快速搜索。你知道吗第二行使用列表来过滤不需要的内容 文件名。你知道吗
相关问题 更多 >
编程相关推荐