msa*_*aio 4 python string split
我有包含可选数字和字母的字符串,例如“01a”、“b”和“02”。这些字符串总是由两部分组成,左边是数字,右边是字母。我想拆分这些字符串以分别获取数字和字母。我怎样才能定义mySplit得到这个结果?
>>> map(mySplit, ['01123absd', 'bsdf', '02454'])
[('01123', 'absd'), (None, 'bsdf'), ('02454', None)]
Run Code Online (Sandbox Code Playgroud)
您可以为此使用正则表达式。我们想要的是:
请注意,regex将创建命名组,每次调用时都会编译一次以提高效率。
import re
regex = re.compile("^(?P<numbers>\d*)(?P<letters>\w*)$")
def myFunction(entry):
(numbers, letters) = regex.search(entry).groups()
return (numbers or None, letters or None)
map(myFunction, ['01123absd', 'bsdf', '02454'])
Run Code Online (Sandbox Code Playgroud)
最后一行的调用给出了以下输出:
[('01123', 'absd'), (None, 'bsdf'), ('02454', None)]
Run Code Online (Sandbox Code Playgroud)