使用re.split,如何将结果作为整数和字符串返回

时间:2014-01-31 02:46:02

标签: python split type-conversion

我有这个简单的代码:

print( re.split(' |,', '156 for 23,5 or 15') )
# ['156', 'for', '23', '5', 'or', '15']

问题是如何将数字作为整数返回,将文本作为字符串返回(已经是)...所以改为:

# [156, 'for', 23, 5, 'or', 15]

1 个答案:

答案 0 :(得分:2)

使用正则表达式,你不能。

但是,您可以使用list comprehensionconditional expressionstr.isdigit

>>> import re
>>> [int(x) if x.isdigit() else x for x in re.split(' |,', '156 for 23,5 or 15')]
[156, 'for', 23, 5, 'or', 15]
>>>