我有两个列表,并且我想删除列表l1
中没有任何其他子字符串的元素l2
。我的列表如下:
l1 = ['PC||macOS||Xbox One||PlayStation 4||Nintendo Switch',
'macOS||PC||Xbox One',
'iOS',
'PC||PlayStation 4',
'PC',
'Web',
'PC||macOS',
'PC||macOS||Linux',
'PC||Linux',
'PC||Web',
'PC||Xbox One||PlayStation 4||Nintendo Switch',
'PC||macOS||Linux||Web',
'macOS||PC||Linux||PlayStation 4||Xbox One',
'PC||Android',
'PC||macOS||Linux||Android',
'macOS||iOS||Linux||PC||PlayStation 4',
'Linux',
'PC||macOS||Web',
nan,
'Xbox One||PC||Nintendo Switch||PlayStation 4',
'iOS||PC||macOS||Linux',
'PC||macOS||Android||Web',
'iOS||Linux||PC||macOS',
'Android',
'macOS||PC||Linux',
'Linux||PC'
]
l2 = ['PC', 'macOS', 'Linux', 'mac', 'Web']
我要获得的是所有组合,l1
因为只有的子字符串在中声明l2
。因此,在新列表中,我将没有包含“ Playstation 4”或“ iOS”或“ Xbox One”之类的单词的元素。就像是:
l3 = [
'PC',
'Web',
'PC||macOS',
'PC||macOS||Linux',
'PC||Linux',
'PC||Web',
'PC||macOS||Linux||Web',
'PC||macOS||Linux||Android',
'Linux',
'PC||macOS||Web',
'macOS||PC||Linux',
'Linux||PC'
]
进行l2
一组快速查找,然后all
与生成器理解一起使用:
l2_set = set(l2)
l3 = [x for x in l1 if all(chunk in l2_set for chunk in x.split("||"))]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句