2013-02-22 160 views
0

我發現了很多相關的問題,而且至少幫助我解決了這個問題。我的目標是有一個函數接收一個字符串和任意數量的整數。我希望函數返回該字符串,並在參數中給出的點插入空格。我將用許多不同的字符串來使用這個函數,這些字符串會有不同數量的插入和插入位置。如何在字符串(Python 2.7)中的特定位置插入空格?

這是想什麼我以產生一個例子:

輸入像「ATGCATGCATGCATGC」和索引的字符串(例如4,7)。輸出應該是'ATGCA TGC ATGCATGC'。

這是給我的最接近的結果迄今功能:

def breakRNA(seqRNA, *breakPoint): 
    n = 0 
    for i in seqRNA: 
     n += 1 
     for i in breakPoint: 
      if i == n: 
       seqRNA = seqRNA[n:] + ' ' + seqRNA[:n] 
    return seqRNA  

返回字符串,但是,被置換出的順序。例如:

>>> test = breakRNA('AAAAAAAAAAAAAAAAAAAAAAAAAAATTTTTGGGGGGGGCCCCCCCCCC', 5, 8, 14) 
>>> test 
>>> 'TTTTTGGGGGGGGCCCCCCCCCC AAAAA AAAAAAAA AAAAAAAAAAAAAA' 

我是第一天的初學者,所以有任何建議表示讚賞。謝謝。

回答

1

希望這是你在找什麼

def breakRNA(seqRNA, *breakPoint): 
    seqRNAList = [] 
    noOfBreakPoints = len(breakPoint) 
    for breakPt in range(noOfBreakPoints): 
     for index in breakPoint: 
      seqRNAList.append(seqRNA[:index]) 
      seqRNA = seqRNA[index:] 
     break 
    return seqRNAList 

test = breakRNA('AAAAAAAAAAAAAAAAAAAAAAAAAAATTTTTGGGGGGGGCCCCCCCCCC', 5, 8, 14) 
print test 

這將返回ALIST那麼你可以使用連接功能創建一個字符串。

+0

優秀!謝謝,kvivek,在添加「_」,加入(測試)之後,它完美運行。你有一個想法,爲什麼我的迭代產生轉置的字符串? – boloyao 2013-02-23 01:36:11

0

字符串在Python中以列表形式索引。 例如考慮以下因素:

test_string = "azertyuiop" 
print test_string[0] #will return 'a' 
print test_string[0:2] #will return 'az' 

於是又回到了你的問題:

def insert_space(string, integer): 
    return string[0:integer] + ' ' + string[integer:] 
+0

謝謝Ketouem。我認爲我陷入了困境,雖然是使用任意數量的整數參數。 – boloyao 2013-02-23 01:32:53

相關問題