如何在Python的for循环中条件构建列表:合并sequence_C为单列表
解决方法:生成完整的互补碱基序列列表
你当前代码的核心问题是每次循环都重新初始化了sequence_C为空列表,导致每次循环只能得到一个元素的临时列表并打印。要生成和原sequence结构一致的完整列表,只需调整列表初始化的位置,再统一打印结果即可。
修正后的基础版本代码
sequence = ["A","C","G","T","T","A","G","C","T","A","A","C","G"] sequence_C = [] # 将列表初始化移到循环外部,确保全程复用同一个列表 for i in sequence: if i == "A": sequence_C.append("T") elif i == "T": sequence_C.append("A") elif i == "C": sequence_C.append("G") else: sequence_C.append("C") print(sequence_C) # 循环结束后一次性打印完整列表
更简洁的优化版本
可以用字典定义碱基互补映射,再通过列表推导式直接生成结果,代码更紧凑高效:
sequence = ["A","C","G","T","T","A","G","C","T","A","A","C","G"] base_complement = {"A": "T", "T": "A", "C": "G", "G": "C"} sequence_C = [base_complement[base] for base in sequence] print(sequence_C)
内容的提问来源于stack exchange,提问作者Hajar Moukit
相关产品推荐
相关产品推荐

