繁体   English   中英

如何用连字符检查句子中的多个单词

[英]How to censor multiple words in a sentence with hyphen

我有一个 function 用连字符替换句子中的单个单词,它工作正常我试图添加的是让用户输入由空格分隔的多个单词,并且 function 审查它们。 有没有办法做到这一点? 我当前的代码附在下面。 任何帮助表示赞赏。 提前致谢。

def replaceWords(text, word):
    word_list = text.split()
  
    result = ''
  
    hyphen = '-' * len(word)
  

    count = 0


    index = 0;
    for i in word_list:
  
        if i == word:
              
            
            word_list[index] = hyphen
        index += 1
  
    
    result =' '.join(word_list)
  
    return result

def main():
    sentence = input(str("enter a sentence: "))
    words = input(str("enter words to censor(separated by space): "))
    print(replaceWords(sentence, words))
  

if __name__== '__main__':
    main()

您可以使用字符串替换:

def replaceWords(text, words):
    censored_words = words.split()
    replace_character = "-"
    for censor in censored_words:
        text = text.replace(censor,replace_character*len(censor))
    
    return text

def main():
    sentence = input(str("enter a sentence: "))
    words = input(str("enter words to censor(separated by space): "))
    print(replaceWords(sentence, words))
  

if __name__== '__main__':
    main()

你基本上已经有了正确的想法; 只需将word从单个字符串更改为字符串列表,然后使用in查看每个单词是否是该列表的一部分。

>>> from typing import List
>>>
>>> def censor_words(text: str, bad_words: List[str]) -> str:
...     return ' '.join(
...         '-' * len(word) if word in bad_words else word
...         for word in text.split()
...     )
...
>>>
>>> print(censor_words("frankly my dear I don't give a damn", ['dear', 'give']))
frankly my ---- I don't ---- a damn

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM