Chr*_*ris 3 python list set sublist
如果子列表也存在于另一个列表中,您如何查找或仅保留列表的子列表?
lsta = [['a','b','c'],['c','d','e'],['e','f','g']]
lstb = [['a','b','c'],['d','d','e'],['e','f','g']]
Run Code Online (Sandbox Code Playgroud)
我想做类似set(lsta)和set(lstb)的事情
Desired_List = [['a','b','c'],['e','f','g']]
Run Code Online (Sandbox Code Playgroud)
我之所以想执行set之类的原因是因为它的速度,因为我在非常重要的大型列表中执行此操作。
另外,稍微不相关,如果我想从lsta中减去lstb以得到
Desired_List2 = [['d','d','e']]
Run Code Online (Sandbox Code Playgroud)
最好将列表列表更改为元组列表,然后可以轻松使用set操作:
>>> 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')])
Run Code Online (Sandbox Code Playgroud)