我有一個字符串,我想在整個長度的每個位置上操作。更改列表中的多個位置
例如,我有一個字符串,它看起來是這樣的:
string1 = 'AATGCATT'
我想創造一個我改變一個位置在時間中的一個A,T,C或G列表我想使用的方法作爲這樣的:
liststring = list(string1)
changedstrings = []
for pos in range(2, len(liststring) - 2): ##I don't want to change the first and last to characters of the string
if liststring[pos] != 'A':
liststring[pos] = 'A'
random1 = "".join(liststring)
changedstrings.append(random1)
我想使用類似的方法來附加的變化,其餘的(改變位置G,C的其餘部分,和T)到列表上面生成。但是,當我打印changedstrings
列表時,看起來這個代碼在前兩個之後將所有位置更改爲A.我真的只是想將位置3更改爲'A'並追加到列表中。然後將位置4更改爲'A'並追加到列表中,依此類推給我一個列表:
changedstrings = ['AAAGCATT', 'AATACATT', 'AATGAATT']
有什麼建議嗎?
@Selcuk修正 – interstellar
目前尚不清楚你所說的「這個字符串的所有可能的變化中關於A,T,C和G的」的意思。這在後面的描述中沒有幫助。你想要產生什麼樣的組合/排列組合? – jpmc26
[如何在Python中生成列表的所有排列]可能的重複(http://stackoverflow.com/questions/104420/how-to-generate-all-permutations-of-a-list-in-python) – intboolstring