如何让 python 识别字符串的开始、结束中间
How to make python recognize start ,end middle of string
我需要将 2 个序列(或仅 2 个文件)与
进行比较
seq1.TT..GCCT..
seq2 TAT.CGCCAC.
2 45 9
2、4、5、9是有差异的位置,我需要计算它们之间的距离。
我有比较 2 个序列和计算距离的脚本,但是
问题 1) 我想忽略序列开头和结尾的点 (.),但要考虑中间的点。 python 你是怎么做到的?这个任务怎么称呼?
问题 2)如果我有一个相邻的差异,我需要把它作为一个块,所以 2-4 距离将是 2,2-5 将被忽略,4-9 被忽略,5-9 被计算并且2-9 将是 7(将 4 和 5 算作两个),我该怎么做?
问题 1) strip_seq1 = seq1[1:len(seq)-1] 与 seq2 相同,删除开头和结尾的 (.),同时保留其间的所有内容。
问题 2) 抱歉,我不确定您的问题。
所以我想出了一个方法,我想知道是否有更简单的方法。
我会先重新输入问题
如果你有一个列表
a = [1, 2, 3, 7, 10, 11, 12, 18, 20, 21]
问题 1) 如何删除 仅 连续值的前导和尾随组(前导定义为内部有数字 1,尾随有 21)并以 a 结尾列表 b = [7, 10, 11, 12, 18]
。
问题
2) 你将如何计算这些数字之间的距离并以列表 c = [3, 4] 结尾(它将连续数字视为一个块并执行 10-7=3,然后 18-12=4)。
我的解决方案:
consec = []
for key, group in groupby(enumerate(a), lambda i: i[0] - i[1]):
consec.append(list(map(itemgetter(1), group)))
consecHead = consec[0]
consecTail = consec[-1]
if 1 in consecHead:
consecHeadcheck = consecHead
else:
consecHeadcheck = []
if 21 in consecTail:
consecTailcheck = consecTail
else:
consecTailcheck = []
b_prior = [x for x in polPos if x not in consecTailcheck]
b = [x for x in b_prior if x not in consecHeadcheck]
print(b)
c = []
for i in range(len(b)):
if int(int(b[i+1]) - int(b[i])) !=1:
c.append(int(b[i+1]) - int(b[i])
print(c)
我需要将 2 个序列(或仅 2 个文件)与
进行比较seq1.TT..GCCT..
seq2 TAT.CGCCAC.
2 45 9
2、4、5、9是有差异的位置,我需要计算它们之间的距离。 我有比较 2 个序列和计算距离的脚本,但是
问题 1) 我想忽略序列开头和结尾的点 (.),但要考虑中间的点。 python 你是怎么做到的?这个任务怎么称呼?
问题 2)如果我有一个相邻的差异,我需要把它作为一个块,所以 2-4 距离将是 2,2-5 将被忽略,4-9 被忽略,5-9 被计算并且2-9 将是 7(将 4 和 5 算作两个),我该怎么做?
问题 1) strip_seq1 = seq1[1:len(seq)-1] 与 seq2 相同,删除开头和结尾的 (.),同时保留其间的所有内容。
问题 2) 抱歉,我不确定您的问题。
所以我想出了一个方法,我想知道是否有更简单的方法。 我会先重新输入问题
如果你有一个列表
a = [1, 2, 3, 7, 10, 11, 12, 18, 20, 21]
问题 1) 如何删除 仅 连续值的前导和尾随组(前导定义为内部有数字 1,尾随有 21)并以 a 结尾列表 b = [7, 10, 11, 12, 18]
。
问题 2) 你将如何计算这些数字之间的距离并以列表 c = [3, 4] 结尾(它将连续数字视为一个块并执行 10-7=3,然后 18-12=4)。 我的解决方案:
consec = []
for key, group in groupby(enumerate(a), lambda i: i[0] - i[1]):
consec.append(list(map(itemgetter(1), group)))
consecHead = consec[0]
consecTail = consec[-1]
if 1 in consecHead:
consecHeadcheck = consecHead
else:
consecHeadcheck = []
if 21 in consecTail:
consecTailcheck = consecTail
else:
consecTailcheck = []
b_prior = [x for x in polPos if x not in consecTailcheck]
b = [x for x in b_prior if x not in consecHeadcheck]
print(b)
c = []
for i in range(len(b)):
if int(int(b[i+1]) - int(b[i])) !=1:
c.append(int(b[i+1]) - int(b[i])
print(c)