问题
Newbie here, been searching the net for hours for an answer.
string = "44-23+44*4522" # string could be longer
How do I make it a list, so the output is:
[44, 23, 44, 4522]
回答1:
Using the regular expressions as suggested by AChampion, you can do the following.
string = "44-23+44*4522"
import re
result = re.findall(r'\d+',string)
The r'' signifies raw text, the '\d' find a decimal character and the + signifies 1 or more occurrences. If you expect floating points in your string that you don't want to be separated, you might what to bracket with a period '.'.
re.findall(r'[\d\.]+',string)
回答2:
Here you have your made up function, explained and detailed.
Since you're a newbie, this is a very simple approach so it can be easily understood.
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
来源:https://stackoverflow.com/questions/33225900/find-all-numbers-in-a-string-in-python-3