Skip to main content
 首页 » 编程设计

Python 在某一点切割字符串

2025年05月04日42powertoolsteam

好的,我会解释我有什么和需要做什么。

我有一个带有多个键的字典,但我会为这个例子给出一个和一个由 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