Find all numbers in a string in Python 3
本问题已经有最佳答案,请猛点这里访问。
新来的,在网上搜索了好几个小时才找到答案。
1 | string ="44-23+44*4522" # string could be longer |
如何将其作为列表,因此输出为:
1 | [44, 23, 44, 4522] |
使用Achampion建议的正则表达式,可以执行以下操作。
1 2 3 | string ="44-23+44*4522" import re result = re.findall(r'\d+',string) |
r""表示原始文本,"d"表示十进制字符,"+"表示出现一次或多次。如果期望字符串中不希望分隔的浮点,则可以使用句点"."括起来。
1 | re.findall(r'[\d\.]+',string) |
号
这里你有你的化妆功能,解释和详细。既然你是个新手,这是一个非常简单的方法,所以很容易理解。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | def find_numbers(string): list = [] actual ="" # For each character of the string for i in range(len(string)): # If is number if"0" <= string[i] <="9": # Add number to actual list entry actual += string[i] # If not number and the list entry wasn't empty elif actual !="": list.append(actual); actual =""; # Check last entry if actual !="": list.append(actual); return list |