Python 字符串替换

标签 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

虽然这行得通... laughing 中出现的 ugh 也在输出中被替换:ladisappointeding disappointed.

如何避免这种情况,使输出失望地笑

最佳答案

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

示例:

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)

输出:

laughing disappointed

分步说明:

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

    for t in tmp:
    
  2. 将句子拆分为单词:

    words = t.split()
    
  3. 检查 words 中的任何 word 是否在 word_list keys 中。如果是,用它的 value 替换它:

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

    newline = " ".join(words)
    print(newline)
    

关于Python 字符串替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35599180/

相关文章:

c - 从C中的长字符串中读取字符串

c# - 通过比较部分目录路径来匹配子目录

python - 减去 TimeDate 列

python - 如何按子列表中的一项对列表列表进行排序?

python - 无法外部连接两个数据框

string - 在 Erlang 中如何检查许多字符串是否不为空?

c - 从 C 中的字符串中删除指定数量的字符

python pandas read_csv 在制表符分隔文件中无法识别\t

python - 在不删除列的情况下对 DataFrame 列求和

php - 用逗号和换行符在 php 中拆分字符串