擅长:python、mysql、java
<p>也许是这样的</p>
<pre class="lang-py prettyprint-override"><code>def parse_stat(stat):
"""takes 29pt and returns (int stat_value, str stat) as (29, "pt")"""
i = 0
while i < len(stat) and stat[i].isdigit():
i += 1
return int(stat[:i]), stat[i:]
def parse(string):
substrings = string.split(' ')
stats = {}
for sub in substrings:
val, stat = parse_stat(sub)
stats[stat] = val
return stats
if __name__ == "__main__":
string = "9pt 15rb 3as 1bl"
result = parse(string)
print(result)
print(result.get("pt", 0))
print(result.get("fake", 0))
</code></pre>
<pre><code>In: "9pt 15rb 3as 1bl"
Out: {'pt': 9, 'rb': 15, 'as': 3, 'bl': 1}
In: result.get("pt", 0)
Out: 9
In: result.get("fake", 0)
Out: 0
</code></pre>