好的,我会解释我有什么需要做什么。
我有一个带有多个键的字典,但我会为这个例子给出一个字符串和一个由A,T,C和G组成的字符串。([3:]表示它应该在值的3个索引上分开)
Dict = {'EcoRV': 'GATATC'[3:]}
String = 'AAAAGATATCAAAGATATCAAAA'
现在我需要做的就是这个。我必须在字符串中查找值并将字符串拆分为dict键的值,最后得到一个包含拆分部分的列表,因此在这种情况下,它必须拆分为'TC'并取首先是C并将其拆分并最终得到:
List = ['AAAAGATA','TCAAAGATA','TCAAAA']
我尝试使用split
,但它丢失了'TC'
,我需要保留这些内容。
答案 0 :(得分:5)
你已经看到了分裂是如何工作的 - 如何在你想要分离的字母之间添加你在字符串中找不到的任意字符,并将其拆分:
test_str = 'AAATTTCCCGGGTCGGGAAA'
print test_str.replace('TC', 'T:C').split(':')
打印['AAATTT', 'CCCGGGT', 'CGGGAAA']
。
如果要使用字典进一步扩展,可以更改replace
参数以使用字符串格式的字典值。例如:
temp_dict = {'Testenzyme': 'TC',
'Asongtoruinzine': 'GA'}
test_str = 'AAATTTCCCGGGTCGGGAAA'
out_dict = dict()
for key, val in temp_dict.items():
out_dict[key] = test_str.replace(val, '{}:{}'.format(val[0], val[1])).split(':')
print out_dict
打印{'Asongtoruinzine': ['AAATTTCCCGGGTCGGG', 'AAA'], 'Testenzyme': ['AAATTT', 'CCCGGGT', 'CGGGAAA']}
编辑:阅读评论我看到你要指定在字典值中拆分字符串的位置。如果将字典值编写为双元素列表会更容易,其中两个元素表示要分割的字符串的不同部分。例如,您可以执行以下操作:
temp_dict = {'Testenzyme': ['T', 'C'],
'Asongtoruinzine': ['GT', 'C']}
test_str = 'AAATTTCCCGGGTCGGGAAA'
out_dict = dict()
for key, val in temp_dict.items():
out_dict[key] = test_str.replace(''.join(val), ':'.join(val)).split(':')
print out_dict
答案 1 :(得分:0)
您可以使用正则表达式:
sudo apt-get install g++
答案 2 :(得分:0)
import re
Dict = {'Testenzyme':'TC'}
String = 'AAATTTCCCGGGTCGGGAAA'
TestEnzyme = Dict['Testenzyme']
String.replace(TestEnzyme , re.sub(r'(\w)(\w)', r'\1:\2', TestEnzyme )).split(":")
应该做的工作