擅长:python、mysql、java
<p><a href="https://stackoverflow.com/questions/6718196/python-determine-prefix-from-a-set-of-similar-strings/6718435#6718435">Ned Batchelder</a>可能是对的。但有趣的是,这里有一个使用<code>itertools</code>的<a href="https://stackoverflow.com/questions/6718196/python-determine-prefix-from-a-set-of-similar-strings/6718270#6718270">phimuemue</a>答案的更有效版本。</p>
<pre><code>import itertools
strings = ['my_prefix_what_ever',
'my_prefix_what_so_ever',
'my_prefix_doesnt_matter']
def all_same(x):
return all(x[0] == y for y in x)
char_tuples = itertools.izip(*strings)
prefix_tuples = itertools.takewhile(all_same, char_tuples)
''.join(x[0] for x in prefix_tuples)
</code></pre>
<p>作为对可读性的侮辱,这里有一个单行版本:)</p>
<pre><code>>>> from itertools import takewhile, izip
>>> ''.join(c[0] for c in takewhile(lambda x: all(x[0] == y for y in x), izip(*strings)))
'my_prefix_'
</code></pre>