python - 字符串操作执行不正确

标签 python python-3.x

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,它也会做同样的事情,例如stringstrg

相反,我建议像 list comprehension 这样的东西可能会起作用:

procLine = ' '.join([w for w in procLine.split() if len(w)>2])

关于python - 字符串操作执行不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52462066/

相关文章:

python - 关于 toctree 引用的警告

python - 在 Python 中标记成员变量

python - 抓取特定文本的嵌套网页

python - 使用用户定义的类作为值序列化 Python 中的字典 (Flask)

python - 计算列表中的重复项,并将该数字放入子列表中?

python - 使用 Python 打开 Word 文档

python - 在同一列上多次调用 Pandas df.sort_values() 会产生不同的结果?

python - 使用 lxml 查找 div 中的所有链接

python - 删除文本 channel 中的所有消息

python-3.x - Selenium(Python)-等待使用Chrome Web驱动程序完成下载过程