Skip to main content
 首页 » 编程设计

python之有没有办法在python中使用字典来打印2个输出: one as string of whole token and one as number

2025年05月04日7落叶

所以我有大约一千行的文件,看起来像这样:

COADREAD    ZNF271  Missense_Mutation   TCGA-AA-3947    Q14591  A177T  
COADREAD    ZNF271  Missense_Mutation   TCGA-AA-A00N    Q14591  I26T   
COADREAD    ZNF271  Missense_Mutation   TCGA-AG-A002    Q14591  M418T 

我有代码寻找第 5 列的 id 并获取两个字母之间的数字。

有没有一种方法可以在第 5 列(或第 6 列标记)中的 id 之后获取整个标记。

我想获取该 token ,以便将其写入另一个文件。

这是我目前所拥有的(这段代码会给我数字,但是有没有办法同时获得要计算的数字和要打印到输出文件的该标记的整个字符串): 例如,如果我调用 lookup[Q14591] 它会给我 ['177','26',418] 但我还想要 A177T I26T 和 M418T

lookup = defaultdict(list) 
mydata = open('summaryfile.txt') 
for line in csv.reader(mydata, delimiter='\t'): 
    code = re.match('[a-z](\d+)[a-z]', line[-1], re.I) 
    if code:  
        lookup[line[-2]].append(code.group(1)) 

请您参考如下方法:

当使用正则表达式时,group(0) 应该包含整个匹配的字符串。所以在你的情况下:

code.group(0) 

应该包含整个标记。因此,如果您将代码修改为如下所示:

lookup = defaultdict(list) 
wholelookup = defaultdict(list) 
 
mydata = open('summaryfile.txt') 
for line in csv.reader(mydata, delimiter='\t'): 
    code = re.match('[a-z](\d+)[a-z]', line[-1], re.I) 
    if code:  
        lookup[line[-2]].append(code.group(1)) 
        wholelookup[line[-2]].append(code.group(0)) 

然后您可以像这样访问整个 token :

wholelookup['Q14591'] 

或者像这样的子标记:

lookup['Q14591']