关于isdecimal()、isdigit()、isnumeric()的效率问题
isdecimal()、isdigit()、isnumeric()都是判断字符串是否为数字构成的字符串方法。区别如下(小甲鱼视频里有):| isdecimal()的返回值| isdigit() 的返回值| isnumeric()的返回值|
+----------------------------------------------------------+--------------------------+---------------------+-------------------------|
|判断由数字组成的字符串 (例:"123") | True | True | True |
+----------------------------------------------------------+--------------------------+----------------------+------------------------|
|判断由2等符号组成的字符串(例:"22") | False | True | True |
+----------------------------------------------------------+--------------------------+----------------------+------------------------|
|判断由罗马数字组成的字符串(例:"ⅠⅡⅢ") | False | False | True |
+----------------------------------------------------------+--------------------------+---------------------+-------------------------|
|判断由汉字组成的字符串(例:"一壹") | False | False | True |
+----------------------------------------------------------+-------------------------+---------------------+-------------------------+
isdecimal()只判断数字, isdigit()判断数字和特殊的数字(如2),isnumeric()判断数字和不同语言的字符。直觉上来讲,执行效率应该是isdecimal()最快,isdigit()其次,isnumeric()最慢,但结果恰恰相反
请问有人能解释一下么 首先,这种简单的"字符判断"基本不会有太大的效率差异,并且你这里只是这样简单测试也不完全有说服力。所以个人认为用不着深究,只要目的达到,用哪个都行。
又或者,可以大概推测猜想一下:这里面包含若干个if判断,所以影响效率的主要因素是 要判断的字符 要经过多少个if判断,才被检测出来。
其次,真要深究可以自己找源码看。
实践出真知 阿奇_o 发表于 2022-1-26 11:29
首先,这种简单的"字符判断"基本不会有太大的效率差异,并且你这里只是这样简单测试也不完全有说服力。所以 ...
关键是我不想看源码{:10_256:} tommyyu 发表于 2022-1-26 15:17
关键是我不想看源码
{:10_279:}
页:
[1]