2024-04-18 18:05:47 发布
网友
我想遍历一个字符串,并确保该字符串仅由以下字母组成:'a'、'C'、'G'、'T'
>>>string = 'm' >>>nucleotide = ('A','C','G','T') >>>print(all(nucleotide for i in string))
这是我输入的,但输出结果是正确的。为什么?你知道吗
您正在测试nucleotide是否不为空;您从不针对它测试i。你知道吗
nucleotide
i
您必须使用in来实际查看i是否在元组中:
in
all(i in nucleotide for i in string)
将nucleotide设为一个集合会更有效:
nucleotide = {'A', 'C', 'G', 'T'}
更有效的方法是使用正则表达式,此时整个测试都用C代码完成:
import re dna_bases = re.compile(r'^[ACGT]+$') print(dna_bases.fullmatch(string) is not None) # Python 3.4, use .match for earlier versions.
您正在测试
nucleotide
是否不为空;您从不针对它测试i
。你知道吗您必须使用
in
来实际查看i
是否在元组中:将
nucleotide
设为一个集合会更有效:更有效的方法是使用正则表达式,此时整个测试都用C代码完成:
相关问题 更多 >
编程相关推荐