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)
这将创建一个生成器对象,可以用于逐个获取平方值。