如何比较 unicode 字符串,python

本文探讨了在Python中使用chr(id)创建字符串时遇到的匹配问题,提供了两种解决方案:去除空字符和理解字符串终止符的使用。通过实例展示了如何正确比较字符串'(01)'与计算结果,以及在实际场景中的应用建议。
摘要由CSDN通过智能技术生成

问题描述:

我有以下内容,我想测试是否相等:


id_0 = 40
id_1 = 48
id_2 = 49
id_3 = 41
id_4 = 0

conc_value = chr(id_0)+chr(id_1)+chr(id_2)+chr(id_3)+chr(id_4)

if conc_value == '(01)':
    print('Match')
else:
    print('Mismatch')

我总是得到不匹配。我如何比较这两个值?

解决思路一:

这是因为您不需要空字符来结束 python 中的字符串


id_0 = 40
id_1 = 48
id_2 = 49
id_3 = 41

conc_value = chr(id_0)+chr(id_1)+chr(id_2)+chr(id_3)+chr(id_4)

if conc_value.replace("\0", "") == '(01)':
    print('Match')
else:
    print('Mismatch')

#Match

此思路的相关讨论:

  • 问:当我使用上面的示例数据时,确实会遇到各种错误。我检查了,我正在使用 dplyr v1.0.3。应该没问题..我得到的第一个错误是:错误:“Reduce(\”中的意外输入)

  • 答:您使用的是 R >= v4.1 吗?如果不是,您需要升级,或将行替换Reduce(\(x, y) rows_patch(为Reduce(function(x, y) rows_patch

  • 问:我检查了它的 R 4.0.3(64 位)。我已将其更改为 4.1 并且可以正常工作!

解决思路二:

Python 字符串不是以 NUL 结尾的。不要添加chr(id_4)到字符串中,这是可行的。或者更改被比较的文字'(01)\0'(尽管在不使用它们的字符串中想要一个 NUL“终止符”是非常不寻常的)。

如果您的数据来自外部系统(我们将想象一个函数get_ordinal通过某种方式从外部系统返回下一个 Unicode 序号,并NoMoreData在没有剩余时引发自定义异常),那么只需在值进入时过滤它们:

以上仅为部分解决思路介绍,查看全部内容,请添加公众号后回复001,即可查看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快撑死的鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值