相关疑难解决方法(0)

如何进行不区分大小写的字符串比较?

如何在Python中进行不区分大小写的字符串比较?

我想以一种非常简单和Pythonic的方式将常规字符串的比较封装到存储库字符串中.我还希望能够使用常规python字符串在字符串中查找值.

python comparison case-insensitive

525
推荐指数
6
解决办法
64万
查看次数

忽略Python字符串中的大小写

在Python中比较字符串的最简单方法是什么,忽略大小写?

当然可以做(str1.lower()<= str2.lower())等,但是这创建了两个额外的临时字符串(具有明显的alloc/gc开销).

我想我正在寻找相当于C的stricmp().

[请求更多上下文,所以我将用一个简单的例子来证明:]

假设您要对looong字符串列表进行排序.你只需要做List.sort().这是O(n*log(n))字符串比较,没有内存管理(因为所有字符串和列表元素都是某种智能指针).你很快乐.

现在,您想要做同样的事情,但忽略这种情况(让我们简化并说所有字符串都是ascii,因此可以忽略区域设置问题).您可以执行List.sort(key = lambda s:s.lower()),但是每次比较会导致两个新的分配,加上垃圾收集器与重复(降低)字符串的负担.每个这样的存储器管理噪声比简单的字符串比较慢几个数量级.

现在,使用就地stricmp()函数,你可以:theList.sort(cmp = stricmp),它与theList.sort()一样快和内存友好.你又开心了.

问题是任何基于Python的不区分大小写的比较涉及隐式字符串重复,所以我期望找到基于C的比较(可能在模块字符串中).

找不到那样的东西,因此问题就在这里.(希望这澄清了这个问题).

python string case-insensitive

51
推荐指数
5
解决办法
10万
查看次数

如何忽略输入字符串的大小写

这是我正在学习的示例代码.我想取一个字符串(1个或多个字符)并将其与现有字符串进行比较.我想输入蓝色仍然得到答案.怎么完全忽略这个案子?谢谢.

parrot = "Norwegian Blue"

letter = input("Enter a character: ")

if letter in parrot:
    print("The letter {0} is in the Norwegian Blue".format(letter))
else:
    print("Sorry the letter is missing ")
Run Code Online (Sandbox Code Playgroud)

成功案例:

C:\PythonMasterClass>python IfProgramFlow.py  
Enter a character: Blue  
The letter Blue is in the Norwegian Blue
Run Code Online (Sandbox Code Playgroud)

对于失败的案件:

C:\PythonMasterClass>python IfProgramFlow.py  
Enter a character: blue  
Sorry the letter is missing
Run Code Online (Sandbox Code Playgroud)

我检查了其他线程将我的输入和实际文本转换为小写并进行比较,但我想要一个直接的方法.如果我有多个字符串,我不想为了这个目的将它们全部保存在小写字母中.谢谢.

python string substring ignore-case

0
推荐指数
1
解决办法
43
查看次数