栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用正则表达式将数据转换为Python中的字典

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用正则表达式将数据转换为Python中的字典

r
不是有效的字符类,我想您打算使用它
s
。如果您也不使用它们,则可以减少它们的数量。

但最重要的是,您需要正确提取组:

match = re.search(r'>(w+)s+(w+)', line)if match:    tag, gene = match.groups()    myDict[tag] = gene

通过仅创建 两个 捕获组,我们可以更简单地使用提取这 两个 捕获组

.groups()
并将它们直接分配给两个变量
tag
gene

但是,读取FASTA格式似乎表明这是一种多行格式,标签位于一行,其后的基因数据位于
行。在这种情况下,您本

r
应匹配换行符。当您一次读取一行文件时,此功能将无效。

如果没有这样的正则表达式,则读取该格式会简单得多:

myDict = {}with open('d.fasta', 'rU') as filedata:    tag = None    for line in filedata:        line = line.strip()        if not line: continue        if line[0] == '>': tag = line[1:] myDict[tag] = ''        else: assert tag is not None, 'Invalid format, found gene without tag' myDict[tag] += lineprint myDict

这将逐行读取文件,根据起始

>
字符检测标签,然后读取 行基因信息,将其收集到最近读取的标签下的字典中。

注意

rU
模式;我们使用python的通用换行模式打开文件,以处理用于创建文件的换行约定。

最后但并非最不重要的; 看看BioPy项目;
他们的

Bio.SeqIO
模块可以完美处理FASTA以及许多其他格式。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/626521.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号