如何使用布尔值检查字符串中的某些字符?

2024-09-29 21:22:57 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我想知道字符串中是否有字符,如何找到?字符串将作为布尔值返回。正文如下:

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

def是有效序列(dna):

>>> is_valid_sequence('ATCG')
True

>>> is_valid_sequence('AtcGEQ')
False

如何编写代码?谢谢您。在


Tags: 字符串代码falsetrueisdef字母序列
3条回答

如果字符串中只有字母ATCG出现在字符串中,则字符串包含一个有效的DNA序列(尽管不一定是所有的-您可能有一个在任何地方都没有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

您的问题使用'A', 'T', 'C' or 'G',但您的输出建议它应该是'A', 'T', 'C' and 'G',因此您可以使用all检查{}中的每个{}是否都在您的字符串中:

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'是否在s中:

^{pr2}$

但这与你的问题不符:

>>> is_valid_sequence('AtcGEQ')
False

正如这个答案中建议的-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

相关问题 更多 >

    热门问题