Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.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_String_Coordinates - Fatal编程技术网

Python 到字符串中的某个位置

Python 到字符串中的某个位置,python,string,coordinates,Python,String,Coordinates,我想得到一个字符串上的某个点,它与给定的相反(从反面) aaaaaaaaaaaaccccccccccccttttttttttgggggggg TTTTTTTTGGGGGGGGGGAAAAAAAAAACCCCCC 所以你需要转换坐标。在底部钢绞线上,底部0(最右边的C)与顶部钢绞线上的底部39相对。1号基地对38号基地。2号基地反对案件37。(重要的一点:注意当你每次把这两个数字加起来时会发生什么。)所以基数10和基数29相对,基数19和基数20相对 所以:如果我想找到底部链的基数10-20,我可

我想得到一个字符串上的某个点,它与给定的相反(从反面)

aaaaaaaaaaaaccccccccccccttttttttttgggggggg TTTTTTTTGGGGGGGGGGAAAAAAAAAACCCCCC

所以你需要转换坐标。在底部钢绞线上,底部0(最右边的C)与顶部钢绞线上的底部39相对。1号基地对38号基地。2号基地反对案件37。(重要的一点:注意当你每次把这两个数字加起来时会发生什么。)所以基数10和基数29相对,基数19和基数20相对

所以:如果我想找到底部链的基数10-20,我可以查看顶部链的基数20-29(然后反向补充)

我写了以下内容:

fp = open(infile, 'r')
for line in fp:
   tokens = line.split()
   exonstarts = tokens[8][:-1].split(',')
   exonends = tokens[9][:-1].split(',')
   zipped = list(zip(exonstarts, exonends))
   chrom_len = len(chr_string)
   s = ''.join(bc[base.upper()] for base in chr_string[-starts-1:-ends-1] for starts, ends in zipped)+'\n'
然而,每次我这样做,我都会得到:

错误:未定义全局名称“starts”


如何修复此问题?

您正在定义EXONSTART,然后引用未定义的starts。

您正在定义EXONSTART,然后引用未定义的starts。

看起来您试图在生成器表达式中执行太多操作

用于s的两个
是错误的。你的意思是:

s = ''.join(bc[base.upper()] for starts,ends in zipped for base in chr_string[-starts-1:-ends-1])+'\n'
然后为
的第二个
定义了
开始
结束


鉴于您今天提出的问题,我建议您阅读,例如,这样您就可以自己解决这些问题。

看起来您试图在生成器表达式中做得太多了

用于
s的两个
是错误的。你的意思是:

s = ''.join(bc[base.upper()] for starts,ends in zipped for base in chr_string[-starts-1:-ends-1])+'\n'
然后为
的第二个
定义了
开始
结束


鉴于您今天提出的问题,我建议您阅读,例如,您可以自己解决这些问题。

尝试在上一学期前后添加括号:

s = ''.join(bc[base.upper()] for base in (chr_string[-starts-1:-ends-1]\
                                         ^
            for starts, ends in zipped)) +'\n'
                                      ^
在这里定义两个不同的生成器。这相当于:

strands = (chr_string[-starts-1:-ends-1] for starts, ends in zipped)
complementary_strands = (bc[base.upper()] for base in stage_1)
joined_exons = ''.join(stage_2) + '\n'

尝试在最后一个术语周围添加括号:

s = ''.join(bc[base.upper()] for base in (chr_string[-starts-1:-ends-1]\
                                         ^
            for starts, ends in zipped)) +'\n'
                                      ^
在这里定义两个不同的生成器。这相当于:

strands = (chr_string[-starts-1:-ends-1] for starts, ends in zipped)
complementary_strands = (bc[base.upper()] for base in stage_1)
joined_exons = ''.join(stage_2) + '\n'



我应该怎样定义开始呢?Exonstarts指的是一个列表…我希望每一对的第一个元素都是开始,这样[(1,2),(3,4),(5,6)](这个列表就是我定义的“压缩”)开始是1,然后是3和5,而结束是pairI中的另一个数字,我认为使用这个代码时是“for start,ends in zipped’通过说每个括号内的两个元素是start,end…我要使用的字符串,对我来说是非常有用的,如果您继续在这里定义它,那么它将非常有用,而不是在fp中使用
可以将fp定义为多行字符串,并在fp.split('\n')中使用
行:
所以我们可以试着运行它。我应该如何定义开始?Exonstarts指的是一个列表……我希望每对的第一个元素都是开始的[(1,2),(3,4),(5,6)](这个列表就是我定义的“压缩”)starts是1,然后是3和5,ends是pairI中的另一个数字,我认为使用“for start,ends in zipped”的代码可以做到这一点,因为每个括号内的两个元素都是start,结束…如果您继续并在此处定义它,我将要处理的字符串将非常有用,而不是在fp中使用
可以将fp定义为多行字符串,并在fp.split(“\n”)中使用
行:
所以我们可以试着运行它。Exonstarts指的是一个列表…我希望每对的第一个元素都是start,这样[(1,2),(3,4),(5,6)]start就是1,然后是3和5,而end就是pairit中定义的另一个数字,你可能做了和我一开始做的一样的事情,没有滚动查看那条长线的结尾…Exonstarts指的是一个列表…我希望每对的第一个元素都是start,这样[(1,2),(3,4),(5,6)]start将是1,然后是3和5,而end将是pairit中定义的另一个数字,你可能做了和我一开始做的一样的事情,没有滚动到那条长长的线的尽头……我也会尝试一下,看看我想出了什么办法,把它分成三个阶段肯定是正确的(+1),但是这些阶段应该有比_1,_2,_3更有意义的名称。好的,听起来不错。我的最后一个也需要分解,还是像现在这样好?如果strand='+':s=''.join([chr_string[starts:ends]表示开始,结束于zipped]),将其分解有助于提高可读性并帮助您找出代码的错误。如果需要,可以将其保留为一个表达式。它不会影响发电机的功能。这取决于你\打破界限是没有必要的或没有帮助的。我也会尝试一下,看看我想出了什么办法,把它分成三个阶段肯定是正确的(+1),但这些阶段应该有比_1,_2,_3更有意义的名称。好的,听起来不错。我的最后一个也需要分解,还是像现在这样好?如果strand='+':s=''.join([chr_string[starts:ends]表示开始,结束于zipped]),将其分解有助于提高可读性并帮助您找出代码的错误。如果需要,可以将其保留为一个表达式。它不会影响发电机的功能。这取决于你\断线是没有必要或没有帮助的。哈哈,谢谢,我会查出来的。所有这些对我来说都是新鲜事me@skyl例如我没有这样的暗示。这本书的推荐是为了有所帮助,很明显Patrick还没有读过一本关于Python的好书。@PatrickCampbell你已经知道如何用
int(start)
将字符串变成整数了,你是在对另一个答案的评论中自己做的@帕特里克·坎贝尔:请停止在随意回答的评论中提出新问题;这不是这个社区的工作方式。@PatrickCampbell你真的应该接受Johnsyweb的建议,在继续之前阅读python书籍或教程。这是非常困难的