<p>好的,给你</p>
<p>这将使用递归,因为我们不知道<code>list1</code>的深度,所以索引将按如下方式计算:</p>
<pre><code>0,1
2,3,4,
6,7
8,
9,10,11,12
</code></pre>
<p>等等。。。(与您在一行中书写的顺序相同)</p>
<p>结果如下:</p>
<pre><code>[0, 2, 8, 10, 12, 16, 18]
</code></pre>
<p>现在是代码</p>
<pre><code>def foo(l,ref):
global s
global indexes
for items in l: #if it's an element of 3 letters
if len(items)== 3 and len(items[0])==1:
if items == ref:
indexes.append(s) #save his index if it match the ref
s+= 1 #next index
else: #We need to go deeper
foo(items,ref)
return(s)
list1 = [[(['A', 'B', 'A'], ['B', 'O', 'A']),
(['A', 'B', 'A'], ['B', 'A', 'O']),
(['A', 'B', 'O'], ['B', 'O', 'A']),
(['A', 'B', 'O'], ['B', 'A', 'O']),
(['A', 'B', 'A'], ['B', 'O', 'A']),
(['A', 'B', 'A'], ['B', 'A', 'O'])],
[(['A', 'B', 'A'], ['B', 'A', 'A']),
(['A', 'B', 'O'], ['B', 'A', 'A']),
(['A', 'B', 'A'], ['B', 'A', 'A'])],
[['A', 'B', 'A'], ['A', 'B', 'O']],
[['A', 'B', 'B']],
[['B', 'A', 'A']]]
list2 = ['A', 'B', 'A']
indexes = []
s=0
count= foo(list1,list2)
print(indexes)
</code></pre>
<p><code>s</code>是我们正在研究的索引
<code>count</code>是元素(22)的总量。
<code>Indexes</code>是您想要的索引列表</p>
<p>这项工作即使你做了一个<code>list3 = [list1,list1,[list1,[list1],list1]]</code>,你也可能想试试</p>
<p>祝你好运,现在结束你的脚本</p>