为什么要使用Python格式而不是切片?

时间:2015-11-13 14:24:55

标签: python format slice

我继承了一些Python代码,在审核过程中,我发现了几个作者使用format切片字符串的实例,例如:

someStr = 'ABCDEFG'
newStr1 = '{0}{1}{2}'.format(someStr[0], someStr[1], someStr[2])

为什么他们会这样做,而不是切片,例如:

newStr2 = someStr[0:3]

即使使用左填充的数字序列,例如' 012345'也可以获得相同的结果。 (意思是' 012'按预期产生,而不是' 12')。

在我看来,切片更直观,所以我很好奇使用format是否有优势?

1 个答案:

答案 0 :(得分:3)

在这里使用str.format()没有优势,我不知道为什么他们这样做。如果输入字符串短于3个字符,他们很可能会这样做以强制索引错误,但我预计会有一个明确的评论说明这​​一点(并且我个人已经做了明确的检查)。

只需使用切片:

newStr2 = somStr[:3]

请注意,您可以在此处删除0;这是默认值。如果要更新代码(仅在进行其他维护时执行此操作),您可能希望将其更新为使用PEP-8 style guide,包括命名约定。局部变量应使用lower_case_with_underscores,而不是mixedCamelCase