gpt4 book ai didi

Python Alpha Numeric 失败,但 Alpha 有效

转载 作者:太空宇宙 更新时间:2023-11-03 16:22:41 26 4
gpt4 key购买 nike

我正在尝试删除所有非数字字符的字符串,并且我已阅读 Why isn't isnumeric working? ,或者我必须有一个 unicode 字符串。然而,自从 is.alnum()is.alpha()两者都不需要 unicode 并且可以处理字符串,

之间有什么区别(如果有)
"".join([a for a in foo if a.isalnum() and not a.isalpha()])

"".join([a for a in foo if a.isnumeric()]

最佳答案

有些字符既是数字又是字母:

>>> '㒃'.isalnum()
True
>>> '㒃'.isalpha()
True
>>> '㒃'.isnumeric()
True
>>> '㒃'.isalnum() and not '㒃'.isalpha()
False

请注意,您可以使用 unicodedata.numeric 将该符号转换为数字:

>>> unicodedata.numeric('㒃')
2.0
<小时/>

bytes 类的 isalnumisalpha 方法返回 ASCII 字符所需的结果,但此时 bytes 缺少 isnumeric 方法,该方法仅是 unicode。请注意,如果您将自己限制为 7 位 ASCII,则 isdigit 相当于 isalnum() 而不是 isalpha()

<小时/>

您可以通过简单的 for 循环找到所有差异:

>>> for i in range(0x110000):
... c = chr(i)
... num1 = c.isnumeric()
... num2 = c.isalnum() and not c.isalpha()
... if num1 ^ num2:
... print('Difference:', c, '(', i, ')', num1, num2)
...
Difference: 㐅 ( 13317 ) True False
Difference: 㒃 ( 13443 ) True False
Difference: 㠪 ( 14378 ) True False
Difference: 㭍 ( 15181 ) True False
Difference: 一 ( 19968 ) True False
Difference: 七 ( 19971 ) True False
Difference: 万 ( 19975 ) True False
Difference: 三 ( 19977 ) True False
Difference: 九 ( 20061 ) True False
Difference: 二 ( 20108 ) True False
# ... more ...

关于Python Alpha Numeric 失败,但 Alpha 有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38273830/

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