擅长:python、mysql、java
<p>下面是我如何重写你的代码。像你这样冗长的if语句是一种很大的代码气味。我把序列放入一个元组中并使用一个循环。我还用列表理解替换了第二个循环。在</p>
<p>顺便说一句,如果您像一个明智的人一样使用基于零的索引,您也可以简化索引。在</p>
<pre><code>I = 'abc' # 1
II = 'def' # 2
III = 'ghi' # 3
x = 'afh' # Random possibility: It could be an input.
L = []
LL = []
lists = I, II, III
for c in x:
for i, seq in enumerate(lists):
if c in seq:
L.append(i+1)
LL = [lists[i-1] for i in L]
print L
print LL
</code></pre>
<p>另外,一定要检查<code>itertools</code>模块,尤其是<code>product</code>函数。现在还不清楚你到底是什么意思,但是这个产品提供了一系列序列中每一项的所有组合。在</p>