擅长:python、mysql、java
<p>可以使用<a href="https://docs.python.org/3/library/re.html" rel="nofollow noreferrer">^{<cd1>}</a>以及<a href="https://docs.python.org/3/library/functions.html#iter" rel="nofollow noreferrer">^{<cd2>}</a>和<a href="https://docs.python.org/3/library/functions.html#next" rel="nofollow noreferrer">^{<cd3>}</a>函数的组合来避免不必要的检查:</p>
<pre><code>import re
input_data = '''
mapping apple
v1: v1a : v1b
mapping ball
v2: v2a : v2b
'''
# convert input to list
input_data = input_data.strip().split('\n')
# create iterator
iterate_over = iter(input_data)
# declare output dictionary
output = {}
# start iteration
for line in iterate_over:
match = re.findall(r'(?<=^mapping\s)\w+$', line)
if match:
try:
output.update({match[0]: re.sub(r'\s+', '', next(iterate_over)).split(':')})
except StopIteration:
break
print(output)
</code></pre>