在 python 中比较字符串时忽略空格

2024-02-03

我正在使用 difflib python 包。不管我是否设置isjunk论证,计算出的比率是相同的。是不是忽略了空格的差异isjunk is lambda x: x == " "?

In [193]: difflib.SequenceMatcher(isjunk=lambda x: x == " ", a="a b c", b="a bc").ratio()
Out[193]: 0.8888888888888888

In [194]: difflib.SequenceMatcher(a="a b c", b="a bc").ratio()
Out[194]: 0.8888888888888888

isjunk工作原理与您想象的略有不同。一般来说,isjunk仅标识一个或多个不影响匹配长度但仍包含在总字符数中的字符。例如,请考虑以下情况:

>>> SequenceMatcher(lambda x: x in "abcd", " abcd", "abcd abcd").ratio()
0.7142857142857143

第二个字符串的前四个字符 ("abcd") 都是可以忽略的,因此可以将第二个字符串与以空格开头的第一个字符串进行比较。从第一个字符串和第二个字符串中的空格开始,然后,上面SequenceMatcher查找 10 个匹配字符(每个字符串中有 5 个)和 4 个不匹配字符(第二个字符串中可忽略的前四个字符)。这给出的比率为 10/14 (0.7142857142857143)。

那么,在你的情况下,第一个字符串"a b c"匹配索引 0、1 和 2 处的第二个字符串(值为"a b")。第一个字符串的索引 3 (" ") 没有匹配项,但在匹配的长度方面被忽略。由于空格被忽略,索引 4 ("c") 匹配第二个字符串的索引 3。因此,9 个字符中有 8 个匹配,比例为0.88888888888888.

您可能想尝试这个:

>>> c = a.replace(' ', '')
>>> d = b.replace(' ', '')
>>> difflib.SequenceMatcher(a=c, b=d).ratio()
1.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 python 中比较字符串时忽略空格 的相关文章

  • Python 正则表达式从文本中提取域

    我有以下正则表达式 r a zA Z0 9 a zA Z0 9 61 a zA Z0 9 a zA Z 2 6 当我将其应用于文本字符串时 比方说 这是 www website1 com 这是 website2 com 我得到 www we
  • 来自多元 t 分布的样本 python

    我想知道Python中是否有一个从多元学生t分布中采样的函数 我有包含 14 个元素的均值向量 14x14 协方差矩阵和自由度 我想从这个 t 分布中采样一个向量 对于一维情况 我使用 stats t rvs df loc scale 并且
  • 如何将数据从 JavaScript 发送到 Python

    我正在 jinja2 和 python2 7 上使用 GAE 进行 Web 开发 我可以从Python获取数据 但我无法将数据从 JavaScript 发送到 Python 这是 JavaScript 代码 function toSave
  • 以编程方式结束/退出粘合作业

    我正在使用 Glue 书签来处理数据 我的工作是每天安排的 但也可以 手动 启动 由于我使用书签 有时胶水作业可以在没有新数据要处理的情况下启动 然后读取的数据帧为空 在这种情况下 我想好好地结束我的工作 因为它没有什么关系 我试过 if
  • PyQt5 的 OpenGL 模块和版本控制问题(调用不正确的 _QOpenGLFunctions_(ver))

    我一直在努力得到PyQt5 helloGL 示例代码 https github com baoboa pyqt5 blob master examples opengl hellogl py编译 当我尝试构建解决方案时 我得到 Traceb
  • R.scale() 和 sklearn.preprocessing.scale() 之间的区别

    我目前正在将数据分析从 R 转移到 Python 当在 R 中缩放数据集时 我将使用 R scale 根据我的理解 它将执行以下操作 x mean x sd x 为了替换该函数 我尝试使用 sklearn preprocessing sca
  • 液体字符串中的转义字符

    我正在尝试将包含各种尺寸的标签列表放在一起 在 Shopify 中使用 Liquid 尺寸使用单引号和双引号表示英寸和英尺 因为它同时使用两者 所以会导致字符串正确关闭的问题 我尝试过使用标准转义字符 但这似乎不起作用 是否可以在 Liqu
  • 如何检查discord.py中的所有者

    我试图让这个命令只有所有者才能运行它 是否有办法检查服务器的最高角色或创建者 我尝试了 commands is owner 但这仅检查某人是否是机器人的所有者 Guild owner https discordpy readthedocs
  • 自动创建带有文件输出的目录[重复]

    这个问题在这里已经有答案了 假设我想制作一个文件 filename foo bar baz txt with open filename w as f f write FOOBAR 这给出了一个IOError since foo bar不存
  • 在python中检测按下了哪些键

    我需要知道现在按下的是哪个键 我不想捕获一些特定的按键来触发事件或类似的事情 我想知道现在按下了哪些键并显示它们的列表 我还需要捕获特殊键 如 F1 F12 shift alt home windows 等 基本上是键盘上的所有键 我如何在
  • 在解析器/子解析器的开头使用 argparse.REMAINDER

    我想实现一个 arg 解析器 它允许我将单元测试作为子命令之一运行 盲目地将参数传递给 unittest main 例如 foo py unittest args to pass to unittest main 以及其他子命令 foo p
  • 如何在 Python 中连接两个列表?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 如何在 Python 中连接两个列表 Example listone 1 2 3 lis
  • Python:Factory Boy 生成对象创建时指定长度的列表

    我正在尝试使用 Factoryboy 在创建时指定长度的对象中创建一个列表 我可以创建列表 但由于提供的长度 大小的惰性性质 每次尝试创建具有指定长度的列表都会导致问题 这是我到目前为止所拥有的 class FooFactory facto
  • 启动客户端时,代码要求提供电话/机器人令牌

    使用 Telethon 库运行我的第一个代码时 它要求提供机器人令牌 这是实际的代码 from telethon import TelegramClient events sync api id 1234567 api hash xxxxx
  • 如何在 Windows 7 中使用 Python 廉价地创建非常大的文件? [复制]

    这个问题在这里已经有答案了 可能的重复 在Windows系统上快速创建大文件 https stackoverflow com questions 982659 quickly create large file on a windows s
  • 如何将 Django 数据库中的模板标签解释/渲染为 HTML

    我正在尝试添加带有来自 Django 管理站点的图像的帖子 但安全 自动转义关闭过滤器无法解释 Django 的模板标签 My input and page look like 复制图像地址 给出http 127 0 0 1 8000 7B
  • 内置模块位于哪里?

    我尝试查找列出的所有目录sys path但我找不到任何builtins py文件 那么它在哪里呢 从字面上看 该模块内置于 python 解释器中 gt gt gt import builtins gt gt gt builtins
  • Paramiko ValueError“p 的长度必须恰好为 1024、2048 或 3072 位”

    我正在尝试使用 Python 脚本连接 SFTP 由于 p 错误 我无法连接 import paramiko client paramiko SSHClient client load system host keys client con
  • 如何使用 PySpark 预处理图像?

    我有一个项目 需要为 1 设置大数据架构 AWS S3 SageMaker 的概念验证使用 PySpark 预处理图像 2 执行 PCA and 3 训练一些机器或深度学习模型 我的问题是了解如何使用 PySpark 操作图像数据 但无法在
  • 如何使用多阶段构建减小 python (docker) 图像大小?

    我正在寻找一种使用 python 和 Dockerfile 创建多阶段构建的方法 例如 使用以下图像 第一张图片 安装所有编译时要求 并安装所有需要的 python 模块 第二张图片 将所有已编译 构建的包从第一个映像复制到第二个映像 而不

随机推荐

  • 寻找许可证密钥算法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Stack Overflow 上有很多与许可证密钥相关的问题 但他们不回答这个问题 任何人都可以提供一个简单的许可证密钥算法 该算法独
  • 多个Python类继承

    我试图理解 python 类继承方法 但在弄清楚如何执行以下操作时遇到了一些麻烦 如何从类继承方法有条件的取决于孩子的输入 我尝试了下面的代码但没有取得太大成功 class A object def init self path self
  • Android 上的 FCM 通知可以覆盖之前的通知吗?

    我正在使用 FCM 向 Android 设备发送通知 当应用程序处于后台时 如果我发送 10 个通知 设备将在通知栏上显示 10 个条目 我希望 FCM 在通知栏上只创建一个条目 即新的条目将覆盖旧的条目 我没有找到可以设置这个的键http
  • 迭代数组并更新值。错误:“@lvalue $T5”与“Int”不同

    我有以下语法Swift func basicFunction anArray Int aValue Int gt Int for var i 0 i lt 5 i if anArray i 0 anArray i aValue I get
  • 地理位置距离我的位置最近的位置(纬度,经度)

    我想根据我所在的位置显示具体信息 我有五个具有不同信息的城市 我想显示我最接近的城市 信息 我如何使用 javascript 以最简单的方式做到这一点 Ex 如果我将城市经纬度存储在数组中 var cities new york 11111
  • 获取“‘mongoimport’不被识别为内部或外部命令、可操作程序或批处理文件。”当尝试从文件导入数据时

    MongoDB 新手 我正在跟进本教程 https web archive org web 20150729185633 https docs mongodb org getting started shell import data 并且
  • 使用 PHP FreeTDS 扩展从 MSSQL 服务器获取 UTF-8 字符集的数据

    我似乎无法使用 FreeTDS 扩展从 MSSQL 获取编码为 UTF 8 的数据 连接 ini set mssql charset UTF 8 this gt resource mssql connect config servernam
  • 如何优化递归嵌入布局?

    我正在构建一个递归分层布局 这是我的 message with replies xml 我删除了对齐属性和一些项目以使想法清晰
  • Oracle 特殊字符

    我有一个疑问 select from table where name in 52 T M 60 T M 导致查询需要一个参数 如何将查询中的 限定为字符串 以便查询可以找到其中包含 字符的字符串 与号 是 SQLPlus 解释为变量占位符
  • 使用 NODE.JS 和 html5 实现低延迟 (50ms) 视频流

    客观的 我正在构建一个 FPV 机器人 我想通过本地 Wi Fi 连接使用网络浏览器来控制它 我使用的是带有 Raspbian Stretch 的树莓派 3B 我建造了自己的电机控制和电源调节器帽子 经过大量的研究测试 我决定使用 node
  • 性能问题:select s.* 与 select * 之间的差异

    最近我的查询性能遇到了一些问题 事情描述如下 与直接运行相比 Hibernate select 性能较差 如何调试 https stackoverflow com questions 13306548 poor hibernate sele
  • 最终用户计算机上的 C# 数据库访问需要 Microsoft Access 吗?

    也许是个愚蠢的问题 我在我的计算机上开发了一个应用程序 它使用 Microsoft Access 数据库 mdb 来访问某些信息并使用 OLEDb 用监控数据填充表 该应用程序在我的机器上运行良好 但是当我将版本放在测试机器上 没有 MS
  • `git push --force` 的其他后果?

    关于强制执行的问题和解答git push不难找到 here https stackoverflow com questions 11184267 how to push to repo after doing git commit amen
  • jQuery 使用两个按钮上下滚动 div

    我有一组简单的两个按钮 当悬停时应该使 div 上下移动以模拟滚动效果 down hover function scroll animate marginTop 50px fast up hover function scroll anim
  • rebase后Git分支出现了分歧,那么为什么要rebase呢?

    最近我收到通知说我的分支出现了分歧 就在那时 我创建了一个功能分支 将其推送到远程 并在几天后再次开始处理它时与 master 进行了 rebase git checkout b feature branch git push origin
  • 如果 url 包含以下内容,则不显示此内容

    我有一个简单的 div 如果访问者加载某个 URL 我不想加载它 它看起来像这样 问题是 它不起作用 当我加载 www url com blog 时 div stuff 仍然显示 我只是缺乏睡眠还是上述方法应该有效 如果 url 包含 bl
  • Openrefine - 根据文本将行转置为列

    我收到了来自图书馆目录的数据转储 它以 txt 格式显示 我已经能够将数据放入电子表格中 但它们都在一列中 我想将行转置为列 这一列中的数据按以下顺序排列 标题 文件类型 作者 日期 但在某些情况下 目录记录按以下顺序出现 标题 文件类型
  • 从android中的fragment管理工具栏的导航和后退按钮

    我所有的片段都是通过控制的ActionBarActivity mainActivity 在 mainActivity 内DrawerLayout已实现 所有子片段均通过抽屉布局的列表项单击推送 我面临的问题是通过抽屉布局推送片段后我想将抽屉
  • 网络自动化工具

    我意识到我需要一个成熟的浏览器自动化工具来测试用户与我们的 JavaScript 小部件库的交互 我使用 qunit 从单元测试开始 然后我不明智地开始合并越来越多的功能测试 这是一个坏主意 尝试用 JavaScript 模拟大量用户操作
  • 在 python 中比较字符串时忽略空格

    我正在使用 difflib python 包 不管我是否设置isjunk论证 计算出的比率是相同的 是不是忽略了空格的差异isjunk is lambda x x In 193 difflib SequenceMatcher isjunk