Saya memiliki tabel dengan nama kolom untuk bulan ini dan 24 bulan ke depan: yaitu col_tier1, col_tier1_mo1, col_tier_mo2...col_tier_mo24

Dan saya memiliki daftar yang saya format untuk pembaruan di mana col_tier1_mo1 = col_tier1, col_tier2_mo = col_tier1_mo ....

Mengalami masalah mendapatkan format yang benar untuk baris pertama di mana tidak ada "mo_"

cols24mo_tiers = [
    "col_tier1",
    "col_tier2"
]

String pemformatan

    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)])        

Pikir saya bisa melakukan sesuatu seperti ini tetapi python tidak menyukainya

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
lmk1234 4 Maret 2020, 18:09

1 menjawab

Jawaban Terbaik

Anda hampir mendapatkannya, tetapi Anda mencampuradukkan urutan untuk if pertama dalam daftar argumen menjadi .format. Anda memiliki if i > 0 col_prefix+"mo_" else col_prefix padahal seharusnya col_prefix+"mo_" if i > 0 else col_prefix (untuk if nanti dengan str(i), Anda sudah benar). Seluruh blok itu seharusnya

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)])
0
Nathan 4 Maret 2020, 15:25