python - 你如何找到两个列表之间的公共(public)子列表?

标签 python list set sublist

<分区>

如果子列表也存在于另一个列表中,您如何仅查找或保留列表的子列表?

lsta = [['a','b','c'],['c','d','e'],['e','f','g']]
lstb = [['a','b','c'],['d','d','e'],['e','f','g']]

我想做一些类似 set(lsta) & set(lstb) 的事情

Desired_List = [['a','b','c'],['e','f','g']]

我想做 set 之类的事情的原因是它的速度,因为我在一个非常大的列表上这样做,效率非常重要。

另外,有点不相关,如果我想从 lsta 中减去 lstb 怎么办

Desired_List2 = [['d','d','e']]

最佳答案

最好将列表的列表更改为元组列表,然后您可以轻松地使用集合操作:

>>> tupa = map(tuple, lsta)
>>> tupb = map(tuple, lstb)
>>> set(tupa).intersection(tupb)
set([('a', 'b', 'c'), ('e', 'f', 'g')])
>>> set(tupa).difference(tupb)
set([('c', 'd', 'e')])

关于python - 你如何找到两个列表之间的公共(public)子列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21448310/

相关文章:

python - 在 Python 文档字符串中引用参数

python - 我应该如何为一位/两位数字序列编写 python 正则表达式?

python - 在Python中向列表中添加多个元素

javascript - 范围错误 : Maximum call stack size exceeded for Node. js

python - 使用 PyCrypto 加密/解密大文件 - 策略

Python wget 保存文件。如何获取变量中的数据

python 列表 id(L) 和 id(L[ :])

jquery - 获取可排序 jQuery 中拖动列表项的 ID

Python 设置为列表

javascript - 如何在 javascript 集中执行不区分大小写的查找?