如何在Python中将字符串中的所有数字映射到列表?

如何在Python中将字符串中的所有数字映射到列表?,python,string,Python,String,假设我有一根像 "There are LJFK$(#@$34)(,0,ksdjf apples in the (4,5)" 我希望能够动态地将数字提取到列表中:[34,0,4,5]。 在Python中有没有一种简单的方法可以做到这一点 换句话说,, 是否有方法提取由任何分隔符分隔的连续数字簇?当然,请使用: 当然,请使用: 您也可以在不使用正则表达式的情况下执行此操作,尽管这需要更多的工作: >>> s = "There are LJFK$(#@$34)(,0,ksdjf

假设我有一根像

"There are LJFK$(#@$34)(,0,ksdjf apples in the (4,5)"  
我希望能够动态地将数字提取到列表中:[34,0,4,5]。 在Python中有没有一种简单的方法可以做到这一点

换句话说,, 是否有方法提取由任何分隔符分隔的连续数字簇?

当然,请使用:

当然,请使用:


您也可以在不使用正则表达式的情况下执行此操作,尽管这需要更多的工作:

>>> s = "There are LJFK$(#@$34)(,0,ksdjf apples in the (4,5)"
>>> #replace nondigit characters with a space
... s = "".join(x if x.isdigit() else " " for x in s)
>>> print s
                   34   0                      4 5
>>> #get the separate digit strings
... digitStrings = s.split()
>>> print digitStrings
['34', '0', '4', '5']
>>> #convert strings to numbers
... numbers = map(int, digitStrings)
>>> print numbers
[34, 0, 4, 5]

您也可以在不使用正则表达式的情况下执行此操作,尽管这需要更多的工作:

>>> s = "There are LJFK$(#@$34)(,0,ksdjf apples in the (4,5)"
>>> #replace nondigit characters with a space
... s = "".join(x if x.isdigit() else " " for x in s)
>>> print s
                   34   0                      4 5
>>> #get the separate digit strings
... digitStrings = s.split()
>>> print digitStrings
['34', '0', '4', '5']
>>> #convert strings to numbers
... numbers = map(int, digitStrings)
>>> print numbers
[34, 0, 4, 5]

可能的dup如果字符串是12.34,您想要[12,34]还是[12.34]?这是你想要的唯一连续数字整数吗?在这种情况下,它应该是[12,34],整数。当前的答案按预期工作,我只是无法接受它Yet可能的dup如果字符串是12.34,您想要[12,34]还是[12.34]?这是你想要的唯一连续数字整数吗?在这种情况下,它应该是[12,34],整数。目前的答案符合要求,我不能接受。是的,使用列表理解通常比使用地图更好。尤其是因为您只是将结果强制转换为列表。@Cairnarvon通常是这样,除非您可以简单地调用现有函数,因为这样您就不必计算临时变量的名称。列表的创建只是为了更好的输出。如果要迭代结果,显然可以跳过它。您也可以对正则表达式使用\d+。@Schoolboy是的,但是必须使用比int更复杂的东西来支持像٣٤这样的输入。@phihag这是为什么??这些输入将如何通过过滤器??使用列表理解通常比使用map更可取。尤其是因为您只是将结果强制转换为列表。@Cairnarvon通常是这样,除非您可以简单地调用现有函数,因为这样您就不必计算临时变量的名称。列表的创建只是为了更好的输出。如果要迭代结果,显然可以跳过它。您也可以对正则表达式使用\d+。@Schoolboy是的,但是必须使用比int更复杂的东西来支持像٣٤这样的输入。@phihag这是为什么??这些输入将如何通过过滤器?我想我甚至比我要提出的itertools.groupby解决方案更喜欢它。这是一个伟大的解决方案。我想我甚至比我要提出的itertools.groupby解决方案更喜欢它。这也是一个伟大的解决方案