我继承了一些Python代码,在审核过程中,我发现了几个作者使用format
切片字符串的实例,例如:
someStr = 'ABCDEFG'
newStr1 = '{0}{1}{2}'.format(someStr[0], someStr[1], someStr[2])
为什么他们会这样做,而不是切片,例如:
newStr2 = someStr[0:3]
即使使用左填充的数字序列,例如' 012345'也可以获得相同的结果。 (意思是' 012'按预期产生,而不是' 12')。
在我看来,切片更直观,所以我很好奇使用format
是否有优势?
答案 0 :(得分:3)
在这里使用str.format()
没有优势,我不知道为什么他们这样做。如果输入字符串短于3个字符,他们很可能会这样做以强制索引错误,但我预计会有一个明确的评论说明这一点(并且我个人已经做了明确的检查)。
只需使用切片:
newStr2 = somStr[:3]
请注意,您可以在此处删除0
;这是默认值。如果要更新代码(仅在进行其他维护时执行此操作),您可能希望将其更新为使用PEP-8 style guide,包括命名约定。局部变量应使用lower_case_with_underscores
,而不是mixedCamelCase
。