gpt4 book ai didi

python - 有更好的查字方法吗?

转载 作者:行者123 更新时间:2023-11-30 23:08:51 26 4
gpt4 key购买 nike

我认为aA是相同的词。我的方法如下:

chars = 'aA'

def test_no_lower():
for c in chars:
if c in 'aA':
pass

def test_lower():
for c in chars:
if c.lower() == 'a':
pass

if __name__ == '__main__':

from timeit import timeit

print timeit(test_no_lower)
# -> 0.320052002777

print timeit(test_lower)
# -> 0.470894553251

我发现test_no_lowertest_lower更快。我猜想 test_lower 调用 lower 函数的原因,因此它比 test_no_lower 多执行一步来转换字符串。

有没有比test_no_lower更快的更好方法?

最佳答案

一般来说,if 'a' in c.lower() 是解决此问题的最佳方法。在 Python3 中,您可以使用 if 'a' in c.casefold()

如果您确定一次只测试一个字符,我不明白为什么您不能在 'aA' 中使用 if c,但看起来就像一个狭窄的用例。想象一下,如果您需要确保单词中的所有字母都在 ay 之间(您的雇主讨厌字母“Z”)。

charset = 'abcdefghijklmnopqrstuvwxyABCDEFGHIJKLMNOPQRSTUVWXY'
all(c in charset for c in word)

相比:

word.lower() == word

关于python - 有更好的查字方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31507892/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com