Python 我很难在较大的字符串中找到我的子字符串
我有一本字典Python 我很难在较大的字符串中找到我的子字符串,python,Python,我有一本字典 dic_enz = {EcoRI:G^AATTC} 我想找出值G^AATTC在较大字符串my seq中出现的次数,我知道会有3,但它返回我0 这是我的密码 first_enz = dic_enz.get('EcoRI') first_seq = first_enz.replace('^', '') print(my_seq.count(first_seq)) 问题是,当我用GAATTC替换first\u seq时,它是有效的。正如@BlueSheepToken所说,这只是使用
dic_enz = {EcoRI:G^AATTC}
我想找出值G^AATTC
在较大字符串my seq
中出现的次数,我知道会有3
,但它返回我0
这是我的密码
first_enz = dic_enz.get('EcoRI')
first_seq = first_enz.replace('^', '')
print(my_seq.count(first_seq))
问题是,当我用GAATTC替换
first\u seq
时,它是有效的。正如@BlueSheepToken所说,这只是使用和正确模式的问题。看:
Python 3.7.4 (default, Aug 12 2019, 14:45:07)
[GCC 9.1.1 20190605 (Red Hat 9.1.1-2)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> s='G^AATTCaaaaG^AATTCbbbG^AATTCccccddefffG^AATTCa'
>>> pattern='G^AATTC'
>>> s.count(pattern)
4
>>>
如果您要计算的模式是
G^AATTC
为什么要查找GAATTC
?正如@Barmar在评论中所说(我在他/她评论时键入答案),如果字典的键和值不是变量或数字,您应该将它们包围起来:
dic_enz={“EcoRI”:“G^AATTC”}
my_seq=“foo1GAATTCfoo2GAATTCfoo3GAATTCfoo4”
first_enz=dic_enz.get('EcoRI'))
first_seq=first_enz.replace('^','')
打印(我的序号计数(第一个序号))
这将输出
3
我的(以下简称)中的内容?为什么你认为答案是三?根据目前存在的问题,我看不到三个。是否缺少一些输入?需要在字典中的键和值周围加引号。请贴一个。你试过计数吗?仔细看问题。OP实际上使用了count
是的。但是使用了错误的模式
。如果字符串包含G^AATTC
,为什么他要寻找GAATTC
(first_enz.replace('^','')
)?所以基本上你的答案是“不要从模式中删除^
字符”不。这是使用正确的模式。因为我的字符串不包含'^',所以我必须删除'^',然后查找GAATTA