如何替换给定列表中的字母?
A
应替换为T
在给定字符串->['GACGTAGCTAGCGTA' , 'TTCCCTAGCGTA' ]
A -> T
G -> C
T -> A
C -> G
我是一个字母一个字母的阅读和打印之后,卡住了如何达到以下输出。
for j in str(lst):
'''
A -> T
G -> C
T -> A
C -> G
N
'''
if j == 'A':
j='T'
elif j == 'G' :
j='C'
elif j == 'T' :
j='A'
elif j == 'C' :
j='G'
else:
pass
print(j)
输出:
[ 'CTGCATCGATCGCAT' , 'AAGGGATCGCAT' ]
我不确定我理解你的问题,但是translate()函数可用于使用字典映射字符串中的字符:
table = {'G':'C', 'A':'T', 'C':'G', 'T':'A'}
string = 'GACGTAGCTAGCGTA'
print(string.translate(table))
输出为:'GACGTAGCTAGCGTA'
希望它能回答你的问题。
您可以使用str.maketrans
创建一个翻译表,然后使用str.translate
来获得所需的结果:
>>> lst = ['GACGTAGCTAGCGTA' , 'TTCCCTAGCGTA']
>>> for item in lst:
... print(item.translate(item.maketrans('ATGC', 'TACG')))
...
CTGCATCGATCGCAT
AAGGGATCGCAT
为了完整起见,下面是一个列表的结果:
lst = ['GACGTAGCTAGCGTA' , 'TTCCCTAGCGTA']
my_list = [item.translate(item.maketrans('ATGC', 'TACG')) for item in lst]
print(my_list)
修改的是局部变量j
,而不是字符串本身的任何方面。您可能想用结果创建一个新字符串。
example_input = "AACGT"
output = ""
for x in example_input:
if j == 'A':
j = 'T'
elif j == 'G':
j = 'C'
elif j == 'T':
j = 'A'
elif j == 'C':
j = 'G'
output += j
print(output)
您可以使用字典。原来的字母将是键,更新后的字母将是对应的值。然后就可以遍历字符串并获得合适的字母。
my_list = ['GACGTAGCTAGCGTA' , 'TTCCCTAGCGTA' ]
ans = []
for entry in my_list:
s = ""
wordMap = { 'A' : 'T', 'G':'C', 'T':'A', 'C' :'G'}
for i in entry:
s+=wordMap[i]
ans.append(s)
print(ans)
['CTGCATCGATCGCAT', 'AAGGGATCGCAT']