擅长:python、mysql、java
<p>(对不起,我先前的回答误解了这个问题。)</p>
<p>你可以用<a href="https://docs.python.org/3/library/collections.html#collections.defaultdict" rel="nofollow noreferrer">^{<cd1>}</a>来表示:</p>
<pre class="lang-py prettyprint-override"><code>import collections
very_long_string = "abcdefghij" * 1000000
indices = collections.defaultdict(list)
for i, c in enumerate(very_long_string):
indices[c].append(i)
</code></pre>
<p><code>indices</code>将是一个dict,它将每个字符映射到它们的索引中(显然不是上面的<code>very_long_string</code>的例子,而是一个较短的例子)。你知道吗</p>
<pre class="lang-py prettyprint-override"><code>{
"a": [0, 10],
"b": [1, 11],
"c": [2, 12],
"d": [3, 13],
"e": [4, 14],
"f": [5, 15],
"g": [6, 16],
"h": [7, 17],
"i": [8, 18],
"j": [9, 19],
}
</code></pre>
<p>在我的机器上用10000个字符大约需要3秒钟。你知道吗</p>