使用字典更改字符串中的单词。Python

宁优素夫

我有以下消息:

msg = "Cowlishaw Street & Athllon Drive, Greenway now free of obstruction."

我想将“ Drive”更改为“ Dr”或将“ Street”更改为“ St”

expected_msg = "Cowlishaw St and Athllon Dr Greenway now free of obstruction"

我也有一个“转换功能”

如果有这样的单词,我该如何检查列表。如果是这样,请使用“转换”功能对其进行更改。“转换”是具有单词(例如“ Drive”)作为键的字典,值是“ Dr”

这就是我所做的

def convert_message(msg, conversion):
    msg = msg.translate({ord(i): None for i in ".,"})
    tokens = msg.strip().split(" ")
    for x in msg:
         if x in keys (conversion):


    return " ".join(tokens)
安蒂·哈帕拉(Antti Haapala)

这不是简单的:

translations = {'Drive': 'Dr'}

for index, token in enumerate(tokens):
    if token in conversion:
        tokens[index] = conversion[token]

return ' '.join(tokens)

但是,这不适用于像这样"Obstruction on Cowlishaw Street."句子,因为令牌现在是Street.也许您应该使用带有以下内容的正则表达式re.sub

import re
def convert_message(msg, conversion):
    def translate(match):
        word = match.group(0)
        if word in conversion:
            return conversion[word]
        return word

    return re.sub(r'\w+', translate, msg)

在这里re.sub找到1个或多个连续的(+)字母数字字符(\w);并且对于每个这样的正则表达式match调用给定的函数,将匹配项作为参数;匹配的单词可以使用检索match.group(0)该函数应返回给定匹配项的替换项-在此,如果在字典中找到了该单词,则返回该单词,否则返回原始单词。

因此:

>>> msg = "Cowlishaw Street & Athllon Drive, Greenway now free of obstruction."
>>> convert_message(msg, {'Drive': 'Dr', 'Street': 'St'})
'Cowlishaw St & Athllon Dr, Greenway now free of obstruction.'

至于&,在Python 3.4+上,您应该使用它html.unescape来解码HTML实体:

>>> import html
>>> html.unescape('Cowlishaw Street & Athllon Drive, Greenway now free of obstruction.')
'Cowlishaw Street & Athllon Drive, Greenway now free of obstruction.'

这将照顾所有已知的HTML实体。对于较旧的python版本,您可以在此问题上找到替代方法

正则表达式与&字符不匹配如果您也想替换它,我们可以使用正则表达式\w+|.,它表示:“任何连续的字母数字字符运行,或者随后的任何单个字符(不在此运行中)”:

import re
import html


def convert_message(msg, conversion):
    msg = html.unescape(msg)

    def translate(match):
        word = match.group(0)
        if word in conversion:
            return conversion[word]
        return word

    return re.sub(r'\w+|.', translate, msg)

那你可以做

>>> msg = 'Cowlishaw Street & Athllon Drive, Greenway now free of obstruction.'
>>> convert_message(msg, {'Drive': 'Dr', '&': 'and', 
                          'Street': 'St', '.': '', ',': ''})
'Cowlishaw St and Athllon Dr Greenway now free of obstruction'

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用字典替换字符串中的多个单词(python)

来自分类Dev

用字典替换字符串中的多个单词(python)

来自分类Dev

如何使用字典计算字符串中每个单词的字母?(Python)

来自分类Dev

Python使用字典替换字符串中的变量

来自分类Dev

使用字典和replace()函数替换字符串中的单词的问题

来自分类Dev

如何使用字典用python修改字符串?

来自分类Dev

如何使用字符串访问Python字典名称?

来自分类Dev

使用字典从字符串中调用函数

来自分类Dev

使用字典替换字符串

来自分类Dev

用字符串python替换字符串中的单词序列

来自分类Dev

使用字典查找可能是原始字符串的所有可能单词的列表

来自分类Dev

如何使用字典将 numpy 数组中的 id 值更改为字符串 numpy 数组

来自分类Dev

Python-使用字符串中的特定字符

来自分类Dev

使用字符串操作更改字符串中的特定字母

来自分类Dev

用字典python中的值替换字符串中的多个字符

来自分类Dev

使用字典计算字符串中的第一个字母-Python

来自分类Dev

如何在不使用字典的情况下将字符串转换为python中的变量?

来自分类Dev

使用字典中的变量值执行以字符串形式编写的数学表达式(python)

来自分类Dev

使用字符串在python中调用导入的函数

来自分类Dev

使用字典替换字符串,而不删除熊猫数据框中的字符

来自分类Dev

用字母替换字符串中的单词

来自分类Dev

JS / Jquery:使用字典和最长匹配项将字符串转换为单词的文本分段脚本?

来自分类Dev

使用字符串搜索技术在字符串数组中搜索单词并给出其位置

来自分类Dev

Python-用字符串做字典

来自分类Dev

python-用字典条目替换字符串条目

来自分类Dev

无法用字典中的新值替换字符串

来自分类Dev

Python,使用字符串

来自分类Dev

使用字符串数组Java中的标记/单词构建句子

来自分类Dev

如何使用字符串中的匹配项获取所有单词

Related 相关文章

  1. 1

    用字典替换字符串中的多个单词(python)

  2. 2

    用字典替换字符串中的多个单词(python)

  3. 3

    如何使用字典计算字符串中每个单词的字母?(Python)

  4. 4

    Python使用字典替换字符串中的变量

  5. 5

    使用字典和replace()函数替换字符串中的单词的问题

  6. 6

    如何使用字典用python修改字符串?

  7. 7

    如何使用字符串访问Python字典名称?

  8. 8

    使用字典从字符串中调用函数

  9. 9

    使用字典替换字符串

  10. 10

    用字符串python替换字符串中的单词序列

  11. 11

    使用字典查找可能是原始字符串的所有可能单词的列表

  12. 12

    如何使用字典将 numpy 数组中的 id 值更改为字符串 numpy 数组

  13. 13

    Python-使用字符串中的特定字符

  14. 14

    使用字符串操作更改字符串中的特定字母

  15. 15

    用字典python中的值替换字符串中的多个字符

  16. 16

    使用字典计算字符串中的第一个字母-Python

  17. 17

    如何在不使用字典的情况下将字符串转换为python中的变量?

  18. 18

    使用字典中的变量值执行以字符串形式编写的数学表达式(python)

  19. 19

    使用字符串在python中调用导入的函数

  20. 20

    使用字典替换字符串,而不删除熊猫数据框中的字符

  21. 21

    用字母替换字符串中的单词

  22. 22

    JS / Jquery:使用字典和最长匹配项将字符串转换为单词的文本分段脚本?

  23. 23

    使用字符串搜索技术在字符串数组中搜索单词并给出其位置

  24. 24

    Python-用字符串做字典

  25. 25

    python-用字典条目替换字符串条目

  26. 26

    无法用字典中的新值替换字符串

  27. 27

    Python,使用字符串

  28. 28

    使用字符串数组Java中的标记/单词构建句子

  29. 29

    如何使用字符串中的匹配项获取所有单词

热门标签

归档