Python 迭代与推导式

2023-11-02  本文已影响0人  Bioinfor生信云

迭代

迭代(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 生信云!

上一篇下一篇

猜你喜欢

热点阅读