python условное форматирование заменить - PullRequest
1 голос
/ 04 марта 2020

У меня есть таблица с именами столбцов для текущего месяца и следующих 24 месяцев: т.е. col_tier1, col_tier1_mo1, col_tier_mo2 ... col_tier_mo24

и у меня есть список, который я форматирую для обновления, где col_tier1_mo1 = col_tier1, col_tier2_mo = col_tier1_mo ....

возникла проблема с получением правильного формата для первой строки, где нет "mo_"

cols24mo_tiers = [
    "col_tier1",
    "col_tier2"
]

форматирующей строки

    for col_prefix in cols24mo_tiers:
        monthly_cols.extend(["{0}{1} = {0}{2}".format(col_prefix, str(i+1), str(i) if i > 0 else '') for i in range(24)])        

думал, что мог бы сделать что-то подобное, но python это не нравится

for col_prefix in cols24mo_tiers:
        monthly_cols.extend(["{0}{1} = {0}{2}".format(if i > 0 col_prefix+"mo_" else col_prefix, str(i+1), str(i) if i > 0 else '') for i in range(24)])

1 Ответ

0 голосов
/ 04 марта 2020

Вы почти получили его, но вы перепутали порядок для первых if в списке аргументов до .format. У вас было if i > 0 col_prefix+"mo_" else col_prefix, когда оно должно быть col_prefix+"mo_" if i > 0 else col_prefix (для более поздних if с str(i) вы правильно поняли). Весь этот блок должен быть

for col_prefix in cols24mo_tiers:
    monthly_cols.extend(["{0}{1} = {0}{2}".format(col_prefix + "mo_" if i > 0 else col_prefix, str(i+1), str(i) if i > 0 else '') for i in range(24)])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...