擅长:python、mysql、java
<p>好吧,您只需要为<code>['.json', '.mapping.json', '.analyzer.json']</code>中的每个后缀收集一组前缀,然后取这些集合的交集:</p>
<pre><code>In [1]: A = [
...: 'kite1.json',
...: 'kite1.mapping.json',
...: 'kite1.analyzer.json',
...: 'kite2.json',
...: 'kite3.mapping.json',
...: 'kite3.mapping.mapping.json',
...: 'kite3.mapping.analyzer.json',
...: ]
In [2]: suffixes = ['.json', '.mapping.json', '.analyzer.json']
In [3]: prefixes = {s: set() for s in suffixes}
In [4]: for word in A:
....: for suffix in suffixes:
....: if word.endswith(suffix):
....: prefixes[suffix].add(word[:-len(suffix)])
....:
In [5]: prefixes
Out[5]:
{'.analyzer.json': {'kite1', 'kite3.mapping'},
'.json': {'kite1',
'kite1.analyzer',
'kite1.mapping',
'kite2',
'kite3.mapping',
'kite3.mapping.analyzer',
'kite3.mapping.mapping'},
'.mapping.json': {'kite1', 'kite3', 'kite3.mapping'}}
In [6]: prefixes['.json'] & prefixes['.mapping.json'] & prefixes['.analyzer.json']
Out[6]: {'kite1', 'kite3.mapping'}
</code></pre>