我需要取一行文本(单词)并在该行中点之后的第一个空格处将其分成两半;例如:
The quick brown fox jumps over the lazy dog.
^
上面这条线的中点在位置 22,这条线在“jumps”之后的空格处被分割。
如果您能查看以下代码并告诉我它是否是Pythonic,我将不胜感激。如果没有,请建议正确的方法。谢谢。 (PS:我来自 C++ 背景。)
midLine = len(line) / 2 # Locate mid-point of line.
foundSpace = False
# Traverse the second half of the line and look for a space.
for ii in range(midLine):
if line[midLine + ii] == ' ': # Found a space.
foundSpace = True
break
if (foundSpace == True):
linePart1 = line[:midLine + ii] # Start of line to location of space - 1.
linePart2 = line[midLine + ii + 1:] # Location of space + 1 to end of line.
最佳答案
Pythonic 将在可用的地方使用内置函数。 string.index
在这里完成工作。
def half(s):
idx = s.index(' ', len(s) / 2)
return s[:idx], s[idx+1:]
如果没有合适的地方断开字符串,这将引发 ValueError。如果这不是您想要的,您可能需要调整代码。
关于python - 这个文本处理代码是 Pythonic 的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21076656/