擅长:python、mysql、java
<p>您可以使用循环中的一条语句来执行此操作:</p>
<pre><code>names = sorted(["Andrzej", "Henryk", "Alicja", "Cezary", "Barbara"])
females, males = [], []
for name in names:
(females if name[-1] == "a" else males).append(name)
print(females) # -> ['Alicja', 'Barbara']
print(males) # -> ['Andrzej', 'Cezary', 'Henryk']
</code></pre>
<p>下面是另一种仍然非常可读的可能性(如果您理解Python):</p>
<pre><code>males = []
females = [name for name in names if name[-1] == "a" or males.append(name)]
</code></pre>
<p>想想另一个变体,它(非常恰当地)使用<code>groupby</code>:</p>
<pre><code>from itertools import groupby
names = sorted(["Andrzej", "Henryk", "Alicja", "Cezary", "Barbara"])
males, females = [], []
for sex, firstnames in groupby(names, lambda name: name[-1] == "a"):
[males, females][sex].extend(firstnames)
</code></pre>