gpt4 book ai didi

python - 为什么要使用 curses.ascii.islower?

转载 作者:太空狗 更新时间:2023-10-30 00:14:22 26 4
gpt4 key购买 nike

我最近偶然发现了 curses.ascii.islower() .它检查传递的字符是否为小写。与 str.islower() 相比,使用此函数有什么好处? ?是的,它需要将 ASCII 字符转换为字符串对象,这会增加开销。但除此之外还有什么优势吗?

我发现的一个缺点是需要额外的库,这些库可能可用也可能不可用。

最佳答案

同时使用 str.islower 似乎效率更高,所以它不仅仅是需要导入的开销:

Python2:

In [68]: timeit islower("f")
1000000 loops, best of 3: 641 ns per loop

In [69]: timeit "f".islower()
10000000 loops, best of 3: 50.5 ns per loop

python 3

In [2]: timeit "f".islower()
10000000 loops, best of 3: 58.7 ns per loop

In [3]: timeit islower("f")
1000000 loops, best of 3: 801 ns per loop

一个区别/优势是您实际上不必强制转换为 str 对象,您可以传递单字符串或整数。

In [38]: ascii.islower(97)
Out[38]: True

但是使用 str.lower 的 chr 仍然更有效:

In [51]: timeit ascii.islower(122)
1000000 loops, best of 3: 583 ns per loop

In [52]: timeit chr(122).islower()
10000000 loops, best of 3: 122 ns per loop

唯一引用curses howto documentation关于 curses.ascii 的使用说明了它在使用 curses 库时的用途:

while 1:
c = stdscr.getch()
if c == ord('p'):
PrintDocument()
elif c == ord('q'):
break # Exit the while()
elif c == curses.KEY_HOME:
x = y = 0

curses.ascii 模块提供采用整数或 1 个字符的字符串参数的 ASCII 类成员函数;这些可能有助于为您的命令解释器编写更具可读性的测试。它还提供采用整数或 1 个字符的字符串参数并返回相同类型的转换函数。

我认为除了与 curses 模块相关的任何内容之外,您很难找到使用 ascii.islower 优于 str.islower 的任何优势。

关于python - 为什么要使用 curses.ascii.islower?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28570262/

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