在 main.py
我有这个
import RemoveShortWords as rs
procLine="the in shear flow past a flat plate"
procLine = rs.RemomeOneTwoCharWords(procLine)
print(procLine)
和RemoveShortWords.py
就是这个
def RemomeOneTwoCharWords(procLine):
procLine = str(procLine)
for word in procLine.split():
if(len(word)<=2):
procLine = procLine.replace(word,"")
return procLine
打印返回这个
the sher flow pst flt plte
如您所见,函数会删除少于 2 个字符的单词。 但是,出于某种原因,它也删除了所有“a”字符。例如,“flat”变成了“flt”
为什么?
最佳答案
变量 procLine
具有通过平板的剪切流
和procLine.split()
['the', 'in', 'shear', 'flow', 'past', 'a', 'flat', 'plate']
在for
循环中,它找到a
并将procLine
中的a
替换为空或删除该字符。 注意:如果某些单词带有in
,它也会做同样的事情,例如string
到 strg
。
相反,我建议像 list comprehension
这样的东西可能会起作用:
procLine = ' '.join([w for w in procLine.split() if len(w)>2])
关于python - 字符串操作执行不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52462066/