美文网首页
Python 迭代与推导式

Python 迭代与推导式

作者: Bioinfor生信云 | 来源:发表于2023-11-02 15:15 被阅读0次

    迭代

    迭代(Iteration)在编程中是一种重要的控制结构,它允许你重复执行一段代码,直到满足某个条件为止

    字符串、列表、元组、字典、集合都是可迭代对象

    # 创建列表和字典
    seq_list = {'ATCG', 'ATCGATCG', 'ATCGATCGATCG', 'ATCGATCGATCGATCG', 
    'ATCGATCGATCGATCGATCG'}
    
    seq_dict = {'chr1':'ATCG', 'chr2':'ATCGATCG', 'chr3':'ATCGATCGATCG',
    'chr4':'ATCGATCGATCGATCG', 'chr5':'ATCGATCGATCGATCGATCG'}
    

    判断一个对象是否可迭代

    from collections import Iterable 
    isinstance(seq_list, Iterable)
    isinstance(seq_dict, Iterable)
    

    for 循环

    for s in seq_list:
      print(len(s))
    

    如果想要保留编号,可以使用enumerate

    for i , s in enumerate(seq_list, star = 1):
      print("第" + str(i) + "条序列的长度为" + str(len(s)))
    

    字典

    循环取出键值

    for k in seq_dict.keys():
      print(k)
    

    循环取出值

    for v in seq_dict.values():
      print(len(v))
    

    循环取出键值对

    for k,v in seq_dict.items():
      print(k + '的长度为' + str(len(v)))
    

    推导式

    Python推导式(Comprehensions)是一种简洁、高效的方式来创建数据结构(如列表、字典、集合等)的方法。它们允许你使用一种紧凑的语法来快速生成一个新的数据结构,而无需显式地编写循环。

    列表推导式

    列表推导式求序列长度

    [len(s) for s in seq_list]
    

    去除长度小于5的序列

    [len(s) for s in seq_list if len(s) >= 5]
    

    字典推导式

    字典推导式,推导出染色体长度的字典

    {k:len(v) for k, v in seq_dict.items() if len(v) >= 5}
    

    集合推导式

    集合推导式用于从一个现有的序列中创建一个新的集合

    numbers = [1, 2, 2, 3, 4, 5, 5]
    unique_numbers = {x for x in numbers}
    

    上述代码将创建一个新集合{1, 2, 3, 4, 5},其中包含原始列表中的唯一元素。

    生成器推导式

    生成器推导式类似于列表推导式,但它创建一个生成器对象,而不是一个完整的列表。这意味着它以惰性方式生成元素,逐个产生,从而节省内存。

    numbers = [1, 2, 3, 4, 5]
    squares_generator = (x**2 for x in numbers)
    

    这将创建一个生成器对象,可以用于逐个获取平方值。

    欢迎关注Bioinfor 生信云!

    相关文章

      网友评论

          本文标题:Python 迭代与推导式

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