这里是python学习的第五篇,也是基本数据类型的最后一篇。加油撒。
热点推荐
如果还没有安装入门环境首选 pycharm
,可以参见 三剑客 PyCharm 小试。
学习编程语言的起点绕不过语法基础,快速掌握规范代码可以参见 手把手带你学 Python3 | 编程基础与规范代码。
上一期我们罗列了列表的几种用法,切片及截取都是非常常规的用法,在后面的使用中会经常碰到,建议经常查看哟。
元组拆包其实有很多能应用的场景,且元组的不可以变性本身就具有安全的属性,欲简单连接可以查看:
什么是字典
Python字典就好比是hash,一种可以存储任意类型对象,包括字符串、数字、元组、列表甚至是字典的数据类型。
字典的基本操作
new_Dict = {}
new_Dict = {1
:2,3:4,'a':'b','d':'c'}
new_Dict['1'] = a
new_Dict['c'] = d
print(new_Dict)
new_Dict = {a:2,3:4,'a':'b','d':'c','c':'d'}
del new_Dict
del new_Dict['1']
dict.clear()
len(dict)
str(dict)
字典应用
上一周的推送中,我们有一个小测试是想使用元组拆包对fa文件进行处理,获得一对一的信息,便于快速搜索,虽然基本实现搜索功能,但是不能快速将ID与序列一一对应,这点很不方便。因此,还是相同的目的,我们测试一下字典的效果:
less test.txt
>hsa_circ_00001
GTCCCACCCGAAAGATGCCCCCCAGCGCCAGTGCCGTGGACTTCTTCCAGCTCTTTGTCCCAGACAACGTCCTCAAGAACATGGTGGTGCAGACAAACATGTATGCCAAGAAGTTCCAGGAGCGGTTTGGGAGCGACGGAGCCTGGGTGGAGGTGACGCTGACGGAGATGAAGGCGTTCCTGGGCTACATGATCTCCACCAGCATCTCCCACTGCGAGTCCGTCCTCAGCATCTGGAGCGGAGGCTTCTACAGCAACCGCAGCCTCGCCCTCGTCATGAGCCAGGCCCGCTTCGAGAAGATCCTCAAGTACTTCCACGTCGTGGCCTTCCGCTCCAGCCAGACCACGCACGGGCTCTACAAGGTCCAGCCCTTCCTCGACTCCCTGCAGAACAGCTTCGACTCTGCCTTCAGGCCTTCCCAAACCCAGGTGCTACATGAACCCCTGATCGATGAGGATCCTGTATTCATTGCCACGTGCACAGAGCGGGAGCTGCGAAAGAGGAAAAAGCGGAAATTCAGCCTCTGGGTCAGACAATGTTCTTCCACTGGCTTCATCATCCAG
>hsa_circ_00002
GAAATTATCAGTTCATTGCCTAGCATAGTAAATGACAAATATGGAAGGAAGGTCCTATTGTACTTACTAAGCCCCAGAGATCCTGCACATACAGTACGAGAAATCATTGAAGTTCTGCAAAAAGGAGATGGAAATGCACACAGTAAGAAAGATACAGAGGTCCGCAGACGGGAGCTCCTAGAATCCATTTCTCCAGCTTTGTTAAGCTACCTGCAAGAACACGCCCAAGAAGTGGTGCTAGATAAGTCTGCGTGTGTGTTGGTGTCTGACATTCTGGGATCTGCCACTGGAGACGTTCAGCCTACCATGAATGCCATCGCCAGCTTGGCAGCAACAGGACTGCATCCTGGTGGCAAGGACGGAGAGCTTCACATTGCAGAACATCCTGCAGGACATCTAGTTCTGAAGTGGTTAATAGAGCAAGATAAAAAGATGAAAGAAAATGGGAGAGAAGGTTGTTTTGCAAAAACACTTGTAGAGCATGTTGGTATGAAGAACCTGAAGTCCTGGGCTAGTGTAAATCGAGGTGCCATTATTCTTTCTAGCCTCCTCCAGAGTTGTGACCTGGAAGTTGCAAACAAAGTCAAAGCTGCACTGAAAAGCTTGATTCCTACATTGGAAAAAACCAAAAGCACCAGCAAAGGAATAGAAATTCTACTTGAAAAACTGAGCACATAGGTGGAAAGAGTTAAGAGCAAGATGGAATGATTTTTTCTGTTCTCTGTTCTGTTTCCCAATGCAGAAAAGAAGGG
>hsa_circ_00003
ATGCCGAATATACCAACTCTCCTTTGGTACCTACATTCTGTACTCCTGGTTTGAAAATTCCATCTACAAAGAACAGCATAGCTTTG
>hsa_circ_00004
GTTTTACAAGATGAATTAGAAAACCGTTCTAATCAGGTGCGATGTGCAGAGAAAAAATTACAACACAAAGAATTGGAGTCACAGGAACAGATAACTTACATACGACAAGAATATGAAACAAAATTGAAAGGATTGATGCCAGCATCCCTAAGACAAGAACTTGAAGACACCATTTCCTCCCTAAAATCACAGGTTAATTTTCTGCAAAAGAGAGCTTCCATCCTTCAGGAAGAACTGACTACATATCAAGGCAGAAG
>hsa_circ_00005
ACACCATCCAGCACATGAGAGACAGCAAGCACATCGTCGTGTACCATCGAGGACGCTACTTCAAGGTCTGGCTCTACCATGATGGGCGGCTGCTGAAGCCCCGGGAGATGGAGCAGCAGATGCAGAGGATCCTGGACAATACCTCGGAGCCTCAGCCCGGGGAGGCCAGGCTGGCAGCCCTCACCGCAGGAGACAG
以下是不成熟的代码:
f = open('test.fa','rt')
f = f.readlines()
seq_dict = {}
for line in f:
line = line.strip('\n')
if line.startswith('>'):
id = line.strip('>')
seq_dict[id] = []
else:
seq_dict[id] = line
print(seq_dict['hsa_circ_00003'])
#获得序列
ATGCCGAATATACCAACTCTCCTTTGGTACCTACATTCTGTACTCCTGGTTTGAAAATTCCATCTACAAAGAACAGCATAGCTTTG
小结
三大数据结构的使用具有不同的应用场景,简单来说列表可以存储数据类型相同的元素,而当这些元素不需要改变时,推荐使用元组;当数据类型类型不一样的时候,包括更多复杂的信息时,我们就需要使用字典。
上面的小例子只是个引子,如果你能对fa文件能够批量处理,那么也就基本入门了python~ 我们下期见。
▼ 如果你生信基本技能已经入门,需要提高自己,请关注下面的生信技能树,看我们是如何完善生信技能,成为一个生信全栈工程师。

▼ 如果你是初学者,请关注下面的生信菜鸟团,了解生信基础名词,概念,扎实的打好基础,争取早日入门。

猜你喜欢:
【热点】三剑客 PyCharm 小试
【热点】编程基础与规范代码
Shell文本处理三剑客使用小技巧 |awk grep sed +正则表达式
青蒿素科普贴
2019年五篇Cell文献阅读集锦
circRNA实验新更 - circRNA实验设计优化方案笔记