python – 如何删除包含我指定的字符以外的字符的行?

我有一个包含DNA和随机行的列表,如下所示:

 dnalist=['AGTCCTGCAGTCG', '@#$@#!AG!!ECG']

我想创建一个函数,过滤掉除了字符’A”G”C’或’T’之外的任何行.到目前为止,我的代码有一种非常粗略的过滤方式,很容易被愚弄:

def seperate(B):
    'takes a list and seperates the DNA lines'
    newlist=[]
    for i in B:
      if i[0]=='G'or i[0]=='A' or i[0]=='T' or i[0]=='C':
           newlist.append(i)           
    return newlist

如果有人能指出一些有关python数据操作的有用教程,那也很棒.谢谢!!!

最佳答案 您可以学习的数据操作的最佳工具可能是理解(查看Python文档教程以了解这些).这是使用它们的解决方案:

[string for string in dnalist if all(char in "GATC" for char in string)]

你可以看到你基本上描述了你想要的数据.上面的意思是“给我所有的字符串,其中字符串中的所有字符都在集合{”G“,”A“,”T“,”C“}中.

点赞