Как редактировать несколько элементов в списке на условной основе? - PullRequest
1 голос
/ 29 мая 2020

В задании, над которым я работаю для школы, мне было поручено написать сценарий на Python, который будет редактировать список имен файлов. Все файлы с расширением «hpp» должны быть переименованы в «h».

filenames = ["program.c", "stdio.hpp", "sample.hpp", "a.out", "math.hpp", "hpp.out"]

Можно ли решить эту проблему с помощью сравнения списков? Вот что у меня есть ...

def newfilenames(filenames):
  elements = [ "h".format(filenames) for filenames] 

Ответы [ 4 ]

1 голос
/ 29 мая 2020

Вы можете получить результат, выполнив:

elements = [str(name.split('.')[0] + '.h') for name in filenames if name.endswith('.hpp')]
0 голосов
/ 29 мая 2020
def newfilenames(filenames:list):
    if not filenames:
        return filenames
    for i in range(len(filenames)):
        if filenames[i].endswith('.hpp'):
            filenames[i] = filenames[i][:-4] + '.h'
    return filenames
0 голосов
/ 29 мая 2020

Это помогает

>>[i.replace('hpp','h') if 'hpp' in i else i for i in filenames ] ['program.c', 'stdio.h', 'sample.h', 'a.out', 'math.h', 'h.out']

0 голосов
/ 29 мая 2020

Вы можете попробовать это.

aa = [ff.replace('hpp', 'h') for ff in filenames]

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...