我有两个列表a和b,b是a中的一个小子集。
b = ['apple','banana','carrot']
a = list of length 100 which somewhere contains b at indices 12,13,14.
我想在a中搜索b并返回索引12,13,14。
我目前的想法是做两个寻找模式的嵌套循环,但我希望有一个更清洁/更简单的解决方案。
答案 0 :(得分:4)
这是一个简单的可能性:
b = ['a', 'b', 'c']
a = ['t', 'z', 'd', 'a', 'b', 'c', 't', 's', 'a', 'b']
[i for i in range(len(a)) if a[i:i+len(b)] == b]
输出:[3]
返回列表b
中列表a
的第一个元素的索引。请注意,如果b
在a
内重复多次b
,则此方法将返回a
中重复WebPage
的两个索引。
答案 1 :(得分:0)
>>> a=[[1,2,3],[4,5,6],[7,8,9]];
>>> b=[4,5,6];
>>> if b in a:
print"found at:",a.index(b);
enter code here
found at: 1
//来自python shell