使用多个命令的列表理解

Jos*_*und 0 python list-comprehension filepath

我正在为文件列表创建输出文件。在例程结束时,我想获取输出文件名的列表,我可以使用下面的 for 块来实现该列表。有没有一种干净的方法可以使用列表理解来做这样的事情,或者现在不是理解的好时机?

import os

names = []
for file in f_list:
    base, ext = os.path.splitext(file)
    names.append(f"{base}_env{ext}")
Run Code Online (Sandbox Code Playgroud)

下面的代码有效,但如果我无法摆脱 os.path.splitext 的重复调用,我对此并不感到兴奋。

[f"{os.path.splitext(file)[0]}_env{os.path.splitext(file)[1]}" for file in list]

Ala*_* T. 5

你可以使用地图:

import os

names = [f"{base}_env{ext}" for base,ext in map(os.path.splitext,f_list)]
Run Code Online (Sandbox Code Playgroud)