擅长:python、mysql、java
<pre><code>from itertools import groupby
s = "QWE asd ZXc vvQ QWE"
# extract all the words with capital first letter
caps = [word for word in s.split(" ") if word[0].isupper()]
# group and count them
caps_counts = {word: len(list(group)) for word, group in groupby(sorted(caps))}
print(caps_counts)
</code></pre>
<p><code>groupby</code>可能比手动循环效率低,因为它需要sorted iterable执行排序,并且排序是O(NlogN)复杂的,在手动循环的情况下,超过O(N)的竞争性。但这个变种有点“Python”。在</p>