好的,我会解释我有什么和需要做什么。
我有一个带有多个键的字典,但我会为这个例子给出一个和一个由 A、T、C 和 G 组成的字符串。([3:] 表示它应该在值的第 3 个索引上拆分)
Dict = {'EcoRV': 'GATATC'[3:]}
String = 'AAAAGATATCAAAGATATCAAAA'
现在这是我需要做的。我必须在字符串中查找值并将字符串拆分为 dict 键的值,最后得到一个包含拆分部分的列表,因此在这种情况下,它必须拆分为 'TC' 并取第一个 C 并将其拆分并结束:
List = ['AAAAGATA','TCAAAGATA','TCAAAA']
我用 split 试过了,但它丢失了 'TC',我需要保留它们。
请您参考如下方法:
您已经了解了拆分的工作原理——如何在要分隔的字母之间添加一个您在字符串中找不到的任意字符,然后拆分:
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
