迭代字符串以將 i 元素與 i+1 元素進行比較 python

保羅·克拉維爾

我有一個 DNA 序列:

seq='AACGTTCAA'

我想數一數有多少個字母等於下一個。在這個例子中,我應該得到 3(因為 AA-TT-AA)。

在我的第一次嘗試中,我發現這不起作用,因為 i 是一個字符串而 1 是一個整數。

seq='AACGTTCAA'
count=[]
for i in seq:
    if i == i+1: #neither i+=1
        count.append(True)
    else: count.append(False)
print(sum(count))  

所以我試過這個:

seq='AACGTTCAA'
count=[]
for i in seq:
    if i == seq[seq.index(i)+1]:
        count.append(True)
    else: count.append(False)
print(sum(count))  

然後我收到這個我無法理解的輸出。其中 3 個 True 應該是 False (1,5,8) 特別是 8 個,因為它是字符串的最後一個元素。

6
[True, True, False, False, True, True, False, True, True] 

如果考慮使用數組執行此操作,但我認為可能有一種簡單的方法可以僅在字符串中執行此操作。謝謝

itprorh66

為了回答您的問題,seq 中的 i 語句會產生一系列字符串變量,例如“A”、“A”、“C”等。因此,在您嘗試比較的第一種情況下,您i == i+1:將向字符串添加 1拋出 TypeError 的變量。在您的第二個示例中,您執行的位置if i == seq[seq.index(i)+1]給出了錯誤的結果,因為 seq.index(i) 始終返回該值的第一次出現。要在基本級別上做您想做的事情,您可以執行以下操作:

def countPairedLetters(seq):
    count = 0
    for i in range(1, len(seq)):
        # i starts with 1 and ends with len(seq)-1
        if seq[i-1] == seq[i]:
            count += 1
    return count    

注意:通過從索引 1 開始並持續到最後,您可以避免超出序列的問題。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

將列表中的每個元素與之前的所有連續元素進行比較

將字符串中的字符與 C 中的另一個字符進行比較

將對像數組映射到 html 元素時,將當前與以前進行比較

將日期與月份作為字符串進行比較

Bash 腳本如何將數組 elementh 與字符串進行比較

將存儲的時間字符串與 DateTime('now') 進行比較

將編碼字符串與 PHP 中的解碼字符串進行比較?

pandas 數據框迭代作為列表的單元格值並將每個元素與其他單元格進行比較

如何迭代 R 中的 1 <= i < j <= n 个元素?

如何將“字符串列表”與“枚舉字符串值”進行比較以返回最大匹配?

如何在python中像arr[i] + arr[i+1]这样的元素相加

如何使用腳本將工作表名稱與數組元素進行比較並在 Google 工作表上執行任務?

将第 i 个元素与 python(3.7) 列表中的第 (j+1) 个元素相乘

使用 Pandas 數據框將一列值與另一列中的其他元素列表進行比較

使用fuzzywuzzy將列中的所有字符串與第一個字符串進行比較的相似度得分

PHP 將值與 HTML 特殊字符進行比較

(Python)元素與末尾等間隔

如何在沒有 Map 或 switch case 的情況下將字符串列表與枚舉字符串值進行比較?

將文本與 varchar(max) 參數進行比較會導致字符串或二進制數據被截斷

將兩個數組列表與相同類型的對象進行比較。如何獲取第一個列表中除第二個列表中包含的元素之外的所有元素?

在 SQL Server 中將行與組進行比較

如何在 Kotlin 中將字符串與枚舉值進行比較並返回相應的枚舉值

使用 $lt 運算符將整數類型編號與字符串類型編號進行比較時出現問題

python列表的字符串元素之和

通過將其與列表(Python)進行比較來從網頁中刪除項目

Python搜索並將字典值(坐標列表)與列表(bbox)進行比較並返回特定鍵

R 將日期與 group by 語句進行比較

將列與 R 中的向量進行比較

將 forloop 變量與數字進行比較