Vio*_*ist 2 python string lambda integer python-3.8
我有“V70N-HN”形式的字符串,我只需要取出 70 即可。第一个字符可以是任意数量的字母,也可以根本没有。最终角色也是如此。我过去使用过它的变体,但它在 python 2 中看起来更干净,没有将“join”和“list”混在一起:
>>> a = "V70N-HN"
>>> i = int(''.join(list(filter(lambda x: x.isdigit(), a))))
>>> i
70
Run Code Online (Sandbox Code Playgroud)
无论如何,这不再是Pythonic了。有没有更简单、更容易理解的方法来达到相同的结果?
这是进行 @Barmar 建议的正则表达式搜索的一种方法:
>>> import re
>>> int(re.search("\d+", "V70N-HN")[0])
70
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6309 次 |
| 最近记录: |