大多数用 re 转换列表元素的 Pythonic 方法

Most Pyhthonic way to convert element of list get with re

我正在使用正则表达式从字符串 (lp) 中提取一些数字。我知道我将从中得到的列表将只包含 2 个元素。我也知道它们都是整数。

所以我想用一行代码来写这个。

home,away = re.findall(r'\d+',lp)
home,away = int(home),int(away)

感谢您的帮助

您可以使用以下内容:

home, away = map(int, re.findall(r'\d+', lp))

另一个想法是使用列表理解:

home, away = [int(e) for e in re.findall(r'\d+', lp)]

具有静态结果长度时管理类型的小技巧:

expected_types = [int, int, str]
elements = ['1', '2', 'toto']

result = [_type(e) for _type, e in zip(exected_types, elements]
# Returns : [1, 2, 'toto']

另一个解决方案:

home, away = [ int(x) for x in re.findall(r'\d+', lp) ]

编辑:FunkySayu 你更快...