python - 如何从列表列表或元组列表中删除包含某些单词的列表?

标签 python list tuples strip

  1. 列表列表 [['b'],['d'],['e'],['b','d','e'],['b','e'],['e','f '],['b','d']]

  2. 元组列表 [('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/

相关文章:

python - 从 pandas.DataFrame 的每一列中获取最大的值

python - PySpark - 从值列表中添加列

python - 我如何映射到字典而不是列表?

python - 更改元组列表中元组的第一个值

python - 对元组和嵌套字典求和

python - 如何将请求(python)cookie保存到文件中?

python - 作业分配中的递归错误。寻求建议

R:制作一个可用于 Shiny selectInput 的唯一值列表

c# - 绑定(bind)到元组列表

python - 如何处理分类数据以在机器学习中进行预处理