how can i count the number of digits in a string
本问题已经有最佳答案,请猛点这里访问。
我知道is digit如果完整字符串是数字,则返回true或false,但我想检查字符串是否包含数字,例如"1dfsffs"将返回false,但它确实包含数字。那么我会用哪种方法来找出这个问题呢?
1 | .isdigit() |
用map和lambda试试这个
1 2 | a="a12345" sum(list(map(lambda x:1 if x.isdigit() else 0,set(a)))) |
它将为您提供字符串中的数字计数
说明:set(a)--将字符串转换为唯一项(因为map函数采用迭代器或列表将其映射到函数)
1 | lambda x:1 if x.isdigit() else 0 |
号
这个lambda函数帮助我们找到它是否是数字,然后它将返回1,如果不是,它将返回0。
1 | list(map(lambda x:1 if x.isdigit() else 0,set(a))) |
这将返回这样的结果[0,1,1,1,1,1]
1 | sum([0,1,1,1,1,1]) |
。
这将对列表中的所有值求和,这样就可以找到计数。
尝试使用正则表达式:
1 2 | import re print(any(re.sub('\D','','123abc'))) |
输出:
1 | True |
。