有没有一种方法可以替换字符串中的字母?

时间:2020-08-22 17:23:50

标签: python python-3.x bioinformatics biopython

我遇到了一个问题,即它不能将所有G替换为C,而不能将C替换为G,我该怎么办才能解决此问题? 我现在得到的输出是“ GUGAGGGGAG” 我正在寻找的输出是“ CUCAGCGCAG” 这是我到目前为止的代码:

class ViewController: UIViewController, UITextFieldDelegate {
    
    override func viewDidLoad() {
        let textField = UITextField()
        textField.delegate = self
    }
        
    func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
        guard let textFieldText = textField.text,
            let rangeOfTextToReplace = Range(range, in: textFieldText) else {
                return false
        }
        let substringToReplace = textFieldText[rangeOfTextToReplace]
        let count = textFieldText.count - substringToReplace.count + string.count
        return count <= 5
    }
    
}
  • 我正在做DNA到RNA的翻译代码!所以A替换为U,G替换为C,T替换为A,C替换为G

3 个答案:

答案 0 :(得分:5)

使用str.translate,我们可以一次性更改整个字符串:

a_string = "GAGTCGCGTC"
string1 = "GATC"
string2 = "CUAG"
print(a_string.translate(str.maketrans(string1, string2)))

输出:

CUCAGCGCAG

答案 1 :(得分:2)

在Python 3中,您可以使用translate

a_string = 'GAGTCGCGTCTACACATGCAGTCGAACGGTAGCACAGAGAGCTTGCTCTCGGGTG' 
trans = {
    'G': 'C',
    'A': 'U',
    'T': 'A',
    'C': 'G'
}
print(a_string.translate(str.maketrans(trans)))
# CUCAGCGCAGAUGUGUACGUCAGCUUGCCAUCGUGUCUCUCGAACGAGAGCCCAC

答案 2 :(得分:1)

您可以执行替换为小写字母,然后仅在完成所有替换后,才将字符串完全变为大写。