擅长:python、mysql、java
<p>我使用<code>itertools.groupby</code>消除相同的连续项,然后计算流入转换。对于流出,我们只需将列表最后一项的流入计数减去1。你知道吗</p>
<pre><code>from itertools import groupby
from collections import Counter
myList = ['a', 'a', 'a', 'b', 'b', 'a', 'c', 'c', 'b', 'a']
uniques = [key for key, g in groupby(myList)] # ['a', 'b', 'a', 'c', 'b', 'a']
c = Counter(uniques)
inflow = dict(c)
c.update({myList[-1]: -1}) # No outflow for the last element
outflow = dict(c)
print(inflow)
# {'a': 3, 'b': 2, 'c': 1}
print(outflow)
# {'a': 2, 'b': 2, 'c': 1}
</code></pre>