擅长:python、mysql、java
<p>正如在其他答案中所解释的,您必须指定一个排序方法,否则python将按字典顺序对字符串进行排序。如果您使用的是python3.5+,那么可以在<code>merge</code>函数中使用<code>key</code>参数,在python3.5中,可以使用<code>itertools.chain</code>和{<cd4>},作为一种通用方法,您可以使用regex来查找数字并将其转换为int:</p>
<pre><code>In [18]: from itertools import chain
In [19]: import re
In [23]: sorted(chain.from_iterable((sections, subsections, subsubsections)),
key = lambda x: [int(i) for i in re.findall(r'\d+', x)])
Out[23]:
['1. Section',
'1.1 Subsection',
'1.2 Subsection',
'1.2.1 Subsubsection',
'1.2.2 Subsubsection',
'1.3 Subsection',
'1.4 Subsection',
'1.4.1 Subsubsection',
'2. Section',
'2.1 Subsection',
'2.1.1 Subsubsection',
'3. Section',
'4. Section',
'4.1 My subsection',
'5. Section',
'6. Section',
'7. Section',
'7.1 Subsection',
'7.1.1 Subsubsection',
'8. Section',
'8.1 Subsection',
'8.1.1 Subsubsection',
'9. Section',
'10. Section',
'11. Section',
'12. Section',
'12.1 Subsection',
'12.1.1 Subsubsection']
</code></pre>