有没有一种方法可以更有效地格式化此字符串?

时间:2019-07-25 19:11:41

标签: python string string-formatting

我想使用format方法用元组格式化文本,并且想知道是否有更好的方法...

data = (1, 2, 3, 4, 5, 6)

output_text = "KP: {}\nData 1: {}\nData 2: {}\nData 3: {}\nData 4: {}\nData 5: {}\n".format(data[0], data[1], data[2], data[3], data[4], data[5])

2 个答案:

答案 0 :(得分:0)

您可以像在*中一样,使用data运算符解压缩<format str>.format(*data)

>>> data = (1, 2, 3, 4, 5, 6)
>>> "KP: {}\nData 1: {}\nData 2: {}\nData 3: {}\nData 4: {}\nData 5: {}\n".format(*data)
'KP: 1\nData 1: 2\nData 2: 3\nData 3: 4\nData 4: 5\nData 5: 6\n'

要进一步简化并使其适用于任意长度,可以像以下所示使用enumeratechain

>>> from itertools import chain
>>> ('Data {}: {}\n' * len(data)).format(*chain(*enumerate(data)))
'Data 0: 1\nData 1: 2\nData 2: 3\nData 3: 4\nData 4: 5\nData 5: 6\n'

答案 1 :(得分:0)

您还可以在字符串格式中使用很多python语法。

#lightbox {
    display: flex;
    flex-direction: column;

    .lb-dataContainer {
        order: 0;
        margin-bottom: 10px;

        //Want to hide the text? no problem
        .lb-details {
            opacity: 0;
        }

        // Want to change the icon? no problem too.
        .lb-close {
            background: url(../images/ico/close.png);
            background-size: contain;
            background-repeat: no-repeat;
            background-position: right;
        }
    }

    .lb-outerContainer{
        order: 1;
    }
}