美文网首页PythonPython用Python做生信
取两个数据集的交集|自学生信Python(第十四天)

取两个数据集的交集|自学生信Python(第十四天)

作者: 天明豆豆 | 来源:发表于2019-11-26 20:53 被阅读0次

    取两个数据集的交集

    如果希望解决两个数集的交集: 保留数据集 A 中也存在于数据集 B 的项,那么通过用简单的 for. . . if 结合对 Python 列表进行操作就可以实现。

    写在前面的话:
    本人是一枚生物学的学生,由于对生物信息学特别感兴趣,于是想自学生物信息学(新手莫怪)
    。了解到生物信息学要有编程基础,尤其是要会一门编程语言,例如:R语言、Python、Perl等,还要熟悉Linux系统,作为生信小白,听说Python挺简单的,于是就自学了Python,花了两天时间了解了Python的基础语法后,今天想做个练习题试试手(实践是检验真理的唯一标准)。下面是练习题:(试题来源:《PYTHON生物信息学数据管理》)

    如果希望解决两个数集的交集: 既,保留数据集 A 中也存在于数据集 B 的项,那么通过用简单的 for. . . if 循环判断就能实现,下面的例子考虑了两个整数列表 ,并将两个列表共有的元素写到一个新的列表(a_and_b) 中:
    代码如下:

    合并两个数集①

    #合并两个数集①
    data_a = [1,2,3,4,5,6]
    data_b = [1,5,7,8,9]
    a_and_b = []
    for num in data_a:
        if num in data_b:
            a_and_b.append(num)
    print(a_and_b)
    

    使用这种 for 循环和 if 语句的组合保留了 data_a 中元素的顺序,使输出的结果是按先后顺序输出的。
    如果顺序并不相关,则可以通过集合数据类型使代码更短:

    合并两个数集②

    #合并两个数集②
    data_a = set([1,2,3,4,5,6])
    data_b = set([1,5,7,8,9])
    a_and_b = data_a.intersection(data_b)
    print(a_and_b)
    

    通过这种思想,可以扩展到取两个文本中相同的项,还可以进一步扩展到通过文本A的ID提取文本B中文本A中ID的序列,这是生物信息学中常见的知道ID提取序列的方法。

    日常结尾:
    虽然这是个小小的计算程序,但对于初学者的我来说每一次对原代码的升级改造,哪怕是读懂后的注释都感觉是一次进步提升,总之代码虽小,动手最重要!希望更多学习Python的爱好者不要像我一样眼高手低,学习编程就是要,思考,敲码,思考,敲码,敲码,再敲码!

    相关文章

      网友评论

        本文标题:取两个数据集的交集|自学生信Python(第十四天)

        本文链接:https://www.haomeiwen.com/subject/kvwywctx.html