迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python中不区分大小写的字符串比较

作者:迹忆客 最近更新:2022/11/13 浏览次数:

将两个字符串都转换为小写以执行不区分大小写的字符串比较,例如 if string1.lower() == string2.lower():。 通过将两个字符串转换为相同的大小写,我们执行不区分大小写的比较。

string1 = 'Jiyik'
string2 = 'JIYIK'

# ✅ using str.lower()

if string1.lower() == string2.lower():
    # 👇️ this runs
    print('The strings are equal when case is ignored ✅')
else:
    print('The strings are NOT equal when case is ignored ✅')

# ------------------------------------------------------------

# ✅ using str.casefold()

if string1.casefold() == string2.casefold():
    # 👇️ this runs
    print('The strings are equal when case is ignored ✅')
else:
    print('The strings are NOT equal when case is ignored ✅')

Python中不区分大小写的字符串比较

第一个示例使用 str.lower() 方法执行不区分大小写的字符串比较。

str.lower() 方法返回字符串的副本,其中所有大小写字符都转换为小写。

string1 = 'Jiyik'
string2 = 'JIYIK'

if string1.lower() == string2.lower():
    # 👇️ this runs
    print('The strings are equal when case is ignored ✅')
else:
    print('The strings are NOT equal when case is ignored ✅')

该方法不会更改原始字符串,而是返回一个新字符串。 字符串在 Python 中是不可变的。

通过将两个字符串转换为相同的大小写(小写或大写),我们可以执行不区分大小写的字符串比较。

str.lower() 方法最适合在比较 ASCII 字符串时忽略大小写。

对于非 ASCII 字符串,使用 str.casefold() 方法。


使用 str.casefold() 进行不区分大小写的字符串比较

使用 str.casefold() 方法执行不区分大小写的字符串比较,例如 if string1.casefold() == string2.casefold():str.casefold() 方法删除字符串中的所有大小写区别。

string1 = 'Jiyik'
string2 = 'JIYIK'


if string1.casefold() == string2.casefold():
    # 👇️ this runs
    print('The strings are equal when case is ignored ✅')
else:
    print('The strings are NOT equal when case is ignored ✅')

python str casefold 进行不区分大小写的字符串比较

str.casefold() 方法返回字符串的大小写副本。

# 👇️ using str.casefold()
print('JIYIK'.casefold())  # 👉️ jiyik
print('ß'.casefold())  # 👉️ ss

# 👇️ using str.lower()
print('JIYIK'.lower())  # 👉️ jiyik
print('ß'.lower())  # 👉️ ß

大小写折叠类似于小写,但更具侵略性,因为它旨在删除字符串中的所有大小写区别。

请注意德语小写字母 ß 如何等于 ss。

由于字母已经是小写字母,str.lower() 方法按原样返回字母,而 str.casefold() 方法将其转换为 ss

如果我们只比较 ASCII 字符串,则不需要使用 str.casefold() 方法。 在这种情况下,使用 str.lower() 就足够了。

如果我们要比较的字符串包含重音符号,请使用 unicodedata.normalize() 方法。


使用 unicodedata.normalize() 进行不区分大小写的字符串比较

使用 unicodedata.normalize() 方法执行不区分大小写的字符串比较。 unicodedata.noramlize() 方法将返回字符串的正常形式,因此带重音的等效字符被认为是相等的。

import unicodedata

def caseless_compare(str1, str2):
    return (unicodedata.normalize('NFKD', str1) ==
            unicodedata.normalize('NFKD', str2))


string1 = 'dž'
string2 = 'dž'

print(string1 == string2)  # 👉️ False
print(string1.lower() == string2.lower())  # 👉️ False
print(string1.casefold() == string2.casefold())  # 👉️ False

print(caseless_compare(string1, string2))  # 👉️ True

python unicodedata normalize 进行不区分大小写的字符串比较

我们正在比较的字符串包含重音符号。 它们代表相同的字符(或字符序列),但具有不同的视觉外观。

str.lower()str.casefold() 方法在比较字符串方面做得不好,所以我们不得不使用 unicodedata.normalize() 方法。

unicodedata.normalize() 方法返回提供的 Unicode 字符串的正常形式。

我们使用 NFKD 作为表单参数。 范式 KD (NFKD) 应用兼容性分解。 换句话说,它将所有字符替换为它们的等价物。

我们对示例中的两个字符串进行了规范化,以执行不区分大小写的字符串比较。

仅当我们的字符串可能包含不一致的重音字符时,才需要这种方法。

我们应该选择哪种方法取决于您的用例。

如果我们只使用 ASCII 字符串,则使用 str.lower() 方法就足够了。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python for 循环中的下一项

发布时间:2023/04/26 浏览次数:179 分类:Python

本文讨论了 Python 中的 for 循环以及如何通过使用 for 循环和示例来跳过列表的第一个元素。

Python While 循环用户输入

发布时间:2023/04/26 浏览次数:148 分类:Python

我们可以在 while 循环中使用 input() 函数来输入数据,直到在 Python 中满足某个条件。

Python 中的整数规划

发布时间:2023/04/26 浏览次数:193 分类:Python

本文介绍了整数规划和可用于解决混合整数规划问题的 Python 工具。

在 Python 中将整数转换为罗马数字

发布时间:2023/04/26 浏览次数:87 分类:Python

本篇文章将介绍在 Python 中将整数转换为罗马数字。以下是一个 Python 程序的实现,它将给定的整数转换为其等效的罗马数字。

在 Python 中将罗马数字转换为整数

发布时间:2023/04/26 浏览次数:144 分类:Python

本文讨论如何在 Python 中将罗马数字转换为整数。 我们将使用 Python if 语句来执行此操作。 我们还将探讨在 Python 中将罗马数字更改为整数的更多方法。

在 Python 中读取 gzip 文件

发布时间:2023/04/26 浏览次数:70 分类:Python

本篇文章强调了压缩文件的重要性,并演示了如何在 Python 中使用 gzip 进行压缩和解压缩。

在 Python 中锁定文件

发布时间:2023/04/26 浏览次数:141 分类:Python

本文解释了为什么在 Python 中锁定文件很重要。 这讨论了当两个进程在没有锁的情况下与共享资源交互时会发生什么的示例,为什么在放置锁之前知道文件状态很重要,等等

在 Python 中将 PDF 转换为文本

发布时间:2023/04/26 浏览次数:196 分类:Python

在本教程中,我们将学习如何使用 Python 使用 PyPDF2、Aspose 和 PDFminer 将 PDF 文档转换为文本文件。

在 Python 中创建临时文件

发布时间:2023/04/26 浏览次数:53 分类:Python

本文讲解了tempfile库函数的四个子函数:TemporaryFile、NamedTemporaryFile、mkstemp、TemporaryDirectory。 每个部分都提供了适当的程序,以简化对概念的理解。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便