列表列表 [['b'],['d'],['e'],['b','d','e'],['b','e'],['e','f '],['b','d']]
元组列表 [('b',),('d',),('e'),('b','d','e'),('b','e'),('e', 'f'),('b','d')]
我想删除所有包含字符“b”和“d”的列表或元组。因此输出应如下所示。
删除列表 = [['b','d']] 删除元组 = [('b','d')]
修改后的列表列表 [['b'],['d'],['e'],['b','e'],['e','f']]
修改后的元组列表 [('b',),('d',),('e'),('b','e'),('e','f')]
我希望对多个列表/元组组合执行此操作,例如删除列表 = [[e,f],[b,d]] 以删除包含字符 e 和 f 以及 b 的任何列表和 d。
我非常感谢您提供的任何帮助。
最佳答案
简单的列表理解就足够了。适用于列表列表和元组列表。
abc = [['b'],['d'],['e'], ['b','d','e'],['b','e'],['e','f'],['b','d']]
# Characters to remove
rm = [['e','f'],['b','d']]
# Function takes two list of lists as input
def refine_list(mylist, stuff_to_remove):
for to_remove in stuff_to_remove:
mylist = [x for x in mylist if not set(to_remove).issubset(set(x))]
return mylist
print(refine_list(abc, rm))
输出:
[['b'], ['d'], ['e'], ['b', 'e']]
关于python - 如何从列表列表或元组列表中删除包含某些单词的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68987011/