Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我很难在较大的字符串中找到我的子字符串_Python - Fatal编程技术网

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