基于谓词从列表中删除元素

bha*_*thy 6 python string

我想从列表中删除一个元素,以便元素包含'X''N'.我必须申请大型基因组.这是一个例子:

输入:

codon=['AAT','XAC','ANT','TTA']
Run Code Online (Sandbox Code Playgroud)

预期产量:

codon=['AAT','TTA']  
Run Code Online (Sandbox Code Playgroud)

YOU*_*YOU 6

为了基础目的

>>> [x for x in ['AAT','XAC','ANT','TTA'] if "X" not in x and "N" not in x]
['AAT', 'TTA']
Run Code Online (Sandbox Code Playgroud)

但是如果你有大量的数据,我建议你使用dict或set

如果你有许多不同于X和N的字符,你可能会这样做

>>> [x for x in ['AAT','XAC','ANT','TTA'] if not any(ch for ch in list(x) if ch in ["X","N","Y","Z","K","J"])]
['AAT', 'TTA']
Run Code Online (Sandbox Code Playgroud)

注意:list(x)可以只是x,["X","N","Y","Z","K","J"]可以只是"XNYZKJ",并且参考gnibbler答案,他做了最好的一个.


Yac*_*oby 3

还有一种使用过滤器的方法

    lst = filter(lambda x: 'X' not in x and 'N' not in x, list)
Run Code Online (Sandbox Code Playgroud)