擅长:python、mysql、java
<p>您可以通过将代码拆分为几个简单的函数来实现您的原始想法,并创建一个适当大小的列表(用<code>None</code>填充)来保存单词的最终顺序:</p>
<pre><code>def extract_number(text):
return int(''.join(c for c in text if c.isdigit()))
def order(text):
words = text.split()
result = [None] * len(words)
for word in words:
result[extract_number(word) - 1] = word
return ' '.join(result)
</code></pre>
<p>您也可以使用<code>sorted()</code>在一行中执行此操作:</p>
<pre><code>def extract_number(text):
return int(''.join(c for c in text if c.isdigit()))
def order(text):
return ' '.join(sorted(text.split(), key=extract_number))
</code></pre>