如果我想知道字符串中是否有某些字符,怎么样? String将作为Boolean返回。正文如下:
如果在字符串中找到字母'A','T','C'或'G',则返回True
。如果不是,请返回False
。
def is_valid_sequence(dna):
>>> is_valid_sequence('ATCG')
True
>>> is_valid_sequence('AtcGEQ')
False
如何编写代码?谢谢。
答案 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