从文本文件中不保留顺序地选择性删除重复记录
许多情况下,能够对冗余的数据进行删除重复操作非常有用。要删除重复,就需要找出 那些唯一的对象。 该操作可以选择保持元素的顺序(当顺序比较重要时) ,或者不保持顺序 (这样会更快) 。
前面的文章已经介绍过保留顺序的删除重复元素,今天学习从文本文件中不保留顺序地选择性删除重复记录
写在前面的话:
本人是一枚生物学的学生,由于对生物信息学特别感兴趣,于是想自学生物信息学(新手莫怪)。了解到生物信息学要有编程基础,尤其是要会一门编程语言,例如:R语言、Python、Perl等,还要熟悉Linux系统,作为生信小白,听说Python挺简单的,于是就自学了Python,花了两天时间了解了Python的基础语法后,今天想做个练习题试试手(实践是检验真理的唯一标准)。
如果不关心记录的顺序,就可以将文件内容全部读取为一个集合。
in_file = open('C:/Desktop/ID.txt')
out_file = open('C:/Desktop/ID03.txt','w')
unique = set(in_file)
for line in unique:
out_file.write(line)
#print(unique)
out_file.close()
输出结果如下图:
使用上篇文章的代码,比较其结果发现每次运行上面的代码结果的顺序都是变化的,而上篇文章代码的结果是固定不变的。
在本例中,通过将行读取至集合(unique = set ( in_file)) 的办法,将输入文件的行添加到名为 unique 的集合,集合是唯一元件的无序组合,因此与集合中的现有文件行完全相同的行就不会再被添加进去了。 最后, for 循环将读取集合项井将其写人输出文件。
日常结尾:
虽然这是个小小的计算程序,但对于初学者的我来说每一次对原代码的升级改造,哪怕是读懂后的注释都感觉是一次进步提升,总之代码虽小,动手最重要!希望更多学习Python的爱好者不要像我一样眼高手低,学习编程就是要,思考,敲码,思考,敲码,敲码,再敲码!!