python - 如何在 python 列表中搜索多个元素?

标签 python list

我想写一个程序,找出[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 的切片或 windowseq 进行比较,如果满足则返回 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/

相关文章:

python - 如何导入我自己的 python 文件?

python - 有人曾经不得不 "rebalance"他们的 Python 文件搜索器吗?漏洞?

python - Sklearn+Gensim : How to use Gensim's Word2Vec embedding for Sklearn text classification

python - Python中列表列表中的列表中的值的平均值

python - 连接对象列表中的字符串

python - 通过 Python 中的集合成员资格对整数进行分组

python - 逐项比较两个列表

python - 在python中使用@classmethod有什么用以及何时使用?

python - Python:如何在MapReduce(MRJob)中建立索引?

python - 将二维列表写入文件、读出并重新使用保存的列表