我想写一个程序,找出[a,a, b,c,d,a,a,b,c, c,d,d,d]
.
我想要的答案是2。
列表中有四个a
,但是b
是2,c
是3。
所以我想获得最少数量的[a,b,c]
最佳答案
这是一种方法:
l = ['a','b','c','d','a','a','b','c','c','d','d','d']
seq = ['a','b','c']
sum(1 for i in range(len(l) - len(seq)-1) if l[i: i + len(seq)] == seq)
# 2
在每次迭代中,我们将 l
的切片或 window 与 seq
进行比较,如果满足则返回 1
他们是平等的。因此,这会产生以下切片:
[l[i: i + len(seq)] for i in range(len(l) - len(seq)-1)]
[['a', 'b', 'c'],
['b', 'c', 'd'],
['c', 'd', 'a'],
['d', 'a', 'a'],
['a', 'a', 'b'],
['a', 'b', 'c'],
['b', 'c', 'c'],
['c', 'c', 'd']]
或者我们也可以使用 join
将两个列表都转换为字符串,然后使用 str.count
:
''.join(l).count(''.join(seq))
# 2
关于python - 如何在 python 列表中搜索多个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56131209/