如何相对于另一个字符串减去连续的字符串?

问题描述 投票:0回答:1

我有如下字符串列表

['ENST00000641515.2', 'ENSG00000186092.6', 'OTTHUMG00000001094.4', 
'OTTHUMT00000003223.4', 'OR4F5', '202', 'OR4F5', '2618', 'UTR5', '1', '60', 
'CDS', '61', '1041', 'UTR3', '1042', '2618', '', 'ENST00000335137.4', 
'ENSG00000186092.6', 'OTTHUMG00000001094.4', '', '', 'OR4F5', '201', 'OR4F5',
 '1054', 'UTR5', '1', '36']

我想遍历此列表,并且如果string为'UTR5',我想将其后的两个连续字符串彼此相减(前一个为后者)。相减的值应该相加,最后打印出答案。

示例:在第一个'UTR5'之后有1和60。所以我想减去60-1。在第二个'UTR5'中它是36-1。最终答案应打印为94

我是python的新手,有人可以给我推荐一个脚本。提前致谢。原始列表很大。我给出了一个简短的版本。

python python-3.x string list subtraction
1个回答
0
投票
lst = ['ENST00000641515.2', 'ENSG00000186092.6', 'OTTHUMG00000001094.4',
       'OTTHUMT00000003223.4', 'OR4F5', '202', 'OR4F5', '2618', 'UTR5', '1', '60',
       'CDS', '61', '1041', 'UTR3', '1042', '2618', '', 'ENST00000335137.4',
       'ENSG00000186092.6', 'OTTHUMG00000001094.4', '', '', 'OR4F5', '201', 'OR4F5',
       '1054', 'UTR5', '1', '36']

total = 0
for i, x in enumerate(lst):
    if lst[i] == 'UTR5':
        total += (int(lst[i + 2]) - int(lst[i + 1]))

print(total)

看一看可迭代对象的for循环中的enumerate用法

© www.soinside.com 2019 - 2024. All rights reserved.