首页 > 解决方案 > 如何在元组列表中打印以 P: 开头的短语

问题描述

我正在尝试获得蛋白质的功能。该函数位于元组列表中:

my_seq=[('EMBL', 'AF079160', 'AAC28386.2', '-', 'Genomic_DNA'), ('EMBL', 'AJ564626', 'CAD92097.1', '-', 'Genomic_DNA'), ('EMBL', 'AP008226', 'BAD70067.1', '-', 'Genomic_DNA'), ('RefSeq', 'WP_011227803.1', 'NC_006461.1'), ('RefSeq', 'YP_143510.1', 'NC_006461.1'), ('PDB', '2CWA', 'X-ray', '1.96 A', 'A=1-263'), ('PDBsum', '2CWA', '-'), ('SMR', 'Q5SLP9', '-'), ('STRING', '300852.55771626', '-'), ('EnsemblBacteria', 'BAD70067', 'BAD70067', 'BAD70067'), ('GeneID', '3167973', '-'), ('KEGG', 'ttj:TTHA0244', '-'), ('PATRIC', 'fig|300852.9.peg.244', '-'), ('eggNOG', 'ENOG4105Z8H', 'Bacteria'), ('eggNOG', 'COG0629', 'LUCA'), ('HOGENOM', 'HOG000023350', '-'), ('KO', 'K03111', '-'), ('OMA', 'ARGMNHV', '-'), ('BioCyc', 'TTHE300852:G1GKC-252-MONOMER', '-'), ('EvolutionaryTrace', 'Q5SLP9', '-'), ('Proteomes', 'UP000000532', 'Chromosome'), ('GO', 'GO:0003697', 'F:single-stranded DNA binding', 'IEA:UniProtKB-UniRule'), ('GO', 'GO:0006310', 'P:DNA recombination', 'IEA:UniProtKB-UniRule'), ('GO', 'GO:0006281', 'P:DNA repair', 'IEA:UniProtKB-UniRule'), ('GO', 'GO:0006260', 'P:DNA replication', 'IEA:UniProtKB-UniRule'), ('CDD', 'cd04496', 'SSB_OBF', '2'), ('HAMAP', 'MF_00984', 'SSB', '1'), ('InterPro', 'IPR012340', 'NA-bd_OB-fold'), ('InterPro', 'IPR000424', 'Primosome_PriB/ssb'), ('InterPro', 'IPR011344', 'ssDNA-bd'), ('PANTHER', 'PTHR10302', 'PTHR10302', '2'), ('Pfam', 'PF00436', 'SSB', '2'), ('SUPFAM', 'SSF50249', 'SSF50249', '2'), ('TIGRFAMs', 'TIGR00621', 'ssb', '2'), ('PROSITE', 'PS50935', 'SSB', '2')]

它们位于本体部分 GO: ('GO', 'GO:0006310', 'P:DNA recombination', 'IEA:UniProtKB-UniRule'), ('GO', 'GO:0006281', 'P:DNA repair', 'IEA:UniProtKB-UniRule'), ('GO', 'GO:0006260', 'P:DNA replication', 'IEA:UniProtKB-UniRule'),

它们总是以 P 开头:即“P:DNA 修复”

我需要输出为多行格式: DNA 重组 DNA 修复 DNA 复制

my_list=(list(reduce(operator.concat, my_seq)))# convert to a list
b=','.join(my_list)# to convert to a string. 
import re
re.findall(r'^P:*\w+',(b), re.M) #tried re 

 [] #I am getting

我需要输出为多行格式: DNA 重组 DNA 修复 DNA 复制

标签: python-2.7

解决方案


看看这是不是你想要的。

from functools import reduce
import operator
my_list=(list(reduce(operator.concat, my_seq)))# convert to a list
b=','.join(my_list)# to convert to a string.
import re
re.findall(r'P\:[\w ]+',(b), re.M) 

推荐阅读