亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

生信編程實戰第4題(python)

標簽:
Python

webp

image.png

从这题开始,我决定只用python做
python很强大,熟练了可以做其他语言能做的大部分事情

import globimport collections
mydict=collections.OrderedDict()
list_dirs=glob.glob("./*.txt")for i in list_dirs:   for line in open (i):      array=line.strip().split("\t")      if array[0] not in mydict:
           mydict[array[0]]=[array[1]]    #注意array[1]外面的中括号      else:
           mydict[array[0]].append(array[1])    #字典中,对一个key增加多个value的方法for gene_name in mydict:
    print("%s\t%s"%(gene_name,"\t".join(mydict[gene_name])))

部分结果如下


webp

image.png

总结一下知识点:
1.关于glob
这个题目一开始困扰我的问题就是文件读取的问题,因为目录下有太多文件要合并
这边提供的一个思路就是把所有待读取文件的路径存到列表中然后对列表遍历。这里所用到的就是python中glob包中的glob函数
list_dirs=glob.glob("./")
当前文件下的
文件路径读取到列表中

2.一个key对应多个value,而value形成一个列表。
对第一个文件就是建立单一的键值对
注意!!!
因为我们知道后面的value会形成list,所有这里键值对的构建中value要加[]
dict[key]=[value1]
同一个key,添加新的value的方法是
dict[key].append(value2)

3.一个key,多个value,怎么打印的问题
一般我们打印字典中所有的键值对的时候,用的是
for k,v in dict.items():
print(k,v)
但这里只有一个key,所以是
for key in dict:
print("%s\t%s"%(key,"\t".join(dict[key])))

"t".join()可以把list中的value用"\t"连接起来



作者:天秤座的机器狗
链接:https://www.jianshu.com/p/7200fa53e9f6


點擊查看更多內容
1人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消