Python字符串替换

use*_*467 5 python string

我试图用另一个词替换一个词的出现:

word_list = { "ugh" : "disappointed"}

tmp = ['laughing ugh']

for index, data in enumerate(tmp):
    for key, value in word_list.iteritems():
        if key in data:
            tmp[index]=data.replace(key, word_list[key])

print tmp
Run Code Online (Sandbox Code Playgroud)

而这有效...... ughin的出现laughing也在输出中被替换:ladisappointeding disappointed.

如何避免这种情况,以便输出是laughing disappointed

Ian*_*Ian 5

在这种情况下,您可能需要考虑逐字替换。

例子:

word_list = { "ugh" : "disappointed"}
tmp = ['laughing ugh']

for t in tmp:
    words = t.split()
    for i in range(len(words)):
        if words[i] in word_list.keys():
            words[i] = word_list[words[i]]
    newline = " ".join(words)
    print(newline)
Run Code Online (Sandbox Code Playgroud)

输出:

laughing disappointed
Run Code Online (Sandbox Code Playgroud)

分步说明:

  1. 获取 tmp 中的每个句子list

    for t in tmp:
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将句子拆分为words

    words = t.split()
    
    Run Code Online (Sandbox Code Playgroud)
  3. 检查是否所有wordwords都在word_list keys。如果是,请将其替换为value

    for i in range(len(words)):
        if words[i] in word_list.keys():
            words[i] = word_list[words[i]]
    
    Run Code Online (Sandbox Code Playgroud)
  4. 重新加入替换的单词并打印出结果:

    newline = " ".join(words)
    print(newline)
    
    Run Code Online (Sandbox Code Playgroud)