如何使用Boolean检查某些字符是否在字符串中?

时间:2014-06-26 09:48:16

标签: python string boolean character

如果我想知道字符串中是否有某些字符,怎么样? String将作为Boolean返回。正文如下:

如果在字符串中找到字母'A','T','C'或'G',则返回True。如果不是,请返回False

def is_valid_sequence(dna):

>>> is_valid_sequence('ATCG')
True

>>> is_valid_sequence('AtcGEQ')
False

如何编写代码?谢谢。

3 个答案:

答案 0 :(得分:1)

正如本回答所述 - How to check a string for specific characters?

def is_valid(dna)
    if 'A' or 'T' or 'G' or 'C' in dna:
    return True
else:
    return False

答案 1 :(得分:0)

您的问题使用的是'A', 'T', 'C' or 'G',但您的输出表明它应该是'A', 'T', 'C' and 'G',因此您可以使用all检查char中的l是否在您的l = [ 'A', 'T', 'C' ,'G'] s = 'AtcGEQ' print all(x in s for x in l) False s='ATCG' print all(x in s for x in l) True 中字符串:

'A' or  'T' or  'C' or 'G'

如果您想检查l = [ 'A', 'T', 'C' ,'G'] s= 'AtcGEQ' print any(x in s for x in l) True 是否在s:

>>> is_valid_sequence('AtcGEQ')
False

但这与你提出的问题不符:

{{1}}

答案 2 :(得分:0)

字符串包含有效的DNA序列,如果字母ATCG出现在字符串中(尽管不一定所有 - 你可以有一个基因在任何地方都没有C的序列,虽然这当然不太可能。)

考虑到这一点,该功能应该是

def is_valid_sequence(seq):
    return set(seq).issubset({"A", "T", "C", "G"})

>>> is_valid_sequence("AAAATAATG")
True
>>> is_valid_sequence("AAAATAATGX")
False
>>> is_valid_sequence("AAAATACTAATG")
True