Skip to main content
 首页 » 编程设计

python之逐项搜索Python列表中的元素,并根据条件语句创建新列表

2025年05月04日8lyj

我似乎无法想出一个迭代循环来满足我在这种情况下的需要。

我有一个列表:

seqlist1 = ['C', 'G', 'T', 'G', 'T', 'A', 'G', 'A', 'C', 'G', 'T', 'A', 'A', 'A', 'C', 'A', 'T', 'T', 'T', 'A', 'C', 'C', 'T', 'G', 'T', 'T', 'G', 'A', 'T', 'C', 'T', 'G', 'A', 'G', 'T', 'G', 'C', 'T', 'C', 'G', 'G', 'G', 'A', 'A', 'A', 'T', 'T', 'C', 'C', 'T', 'C', 'A', 'G', 'T', 'G', 'A', 'T', 'G', 'C', 'C', 'T', 'T', 'A', 'A', 'C', 'G', 'C', 'T', 'T', 'C', 'C', 'C', 'A', 'T', 'G', 'C', 'C', 'C', 'A', 'G', 'G', 'C', 'A', 'C', 'G', 'A', 'G', 'T', 'A', 'C', 'T', 'C', 'G', 'T', 'T', 'C', 'A', 'C', 'C', 'G', 'T', 'T', 'T', 'T', 'C', 'T', 'C', 'G', 'A', 'C', 'G', 'T', 'A', 'G', 'A', 'A', 'T', 'A', 'A', 'C', 'G', 'C', 'T', 'A', 'C', 'T', 'T', 'C', 'G', 'C', 'A', 'T', 'T', 'G', 'C', 'A', 'G', 'A', 'G', 'T', 'G', 'G', 'C', 'G', 'G', 'A', 'C', 'C', 'C', 'T', 'A', 'A', 'C', 'G', 'G', 'C', 'A', 'G', 'T', 'T', 'C', 'T'] 

还有一个空列表:

seqlist2 = [] 

我希望能够在 seqlist1 列表中逐项检查是否存在特定字母,如果存在该特定字母,则将其补码插入空列表中的相同索引处序列表 2。

到目前为止,我已经尝试了以下方法,但我知道这是不对的:

seqlist1 = ['C', 'G', 'T', 'G', 'T', 'A', 'G', 'A', 'C', 'G', 'T', 'A', 'A', 'A', 'C', 'A', 'T', 'T', 'T', 'A', 'C', 'C', 'T', 'G', 'T', 'T', 'G', 'A', 'T', 'C', 'T', 'G', 'A', 'G', 'T', 'G', 'C', 'T', 'C', 'G', 'G', 'G', 'A', 'A', 'A', 'T', 'T', 'C', 'C', 'T', 'C', 'A', 'G', 'T', 'G', 'A', 'T', 'G', 'C', 'C', 'T', 'T', 'A', 'A', 'C', 'G', 'C', 'T', 'T', 'C', 'C', 'C', 'A', 'T', 'G', 'C', 'C', 'C', 'A', 'G', 'G', 'C', 'A', 'C', 'G', 'A', 'G', 'T', 'A', 'C', 'T', 'C', 'G', 'T', 'T', 'C', 'A', 'C', 'C', 'G', 'T', 'T', 'T', 'T', 'C', 'T', 'C', 'G', 'A', 'C', 'G', 'T', 'A', 'G', 'A', 'A', 'T', 'A', 'A', 'C', 'G', 'C', 'T', 'A', 'C', 'T', 'T', 'C', 'G', 'C', 'A', 'T', 'T', 'G', 'C', 'A', 'G', 'A', 'G', 'T', 'G', 'G', 'C', 'G', 'G', 'A', 'C', 'C', 'C', 'T', 'A', 'A', 'C', 'G', 'G', 'C', 'A', 'G', 'T', 'T', 'C', 'T'] 
 
seqlist2 = [] 
 
for index, item in enumerate(seqlist1): 
    if item in seqlist1 == 'A': 
        seqlist2.append('T') 
    if item in seqlist1 == 'T': 
        seqlist2.append('A') 
    if item in seqlist1 == 'C': 
        seqlist2.append('G') 
    if item in seqlist1 == 'G': 
        seqlist2.append('C') 
 
print seqlist2 

我在这里做错了什么?

请您参考如下方法:

你的方法是正确的,但你的语法是错误的。

只需遍历 seqlist1 并检查每个项目,使用语法 seqlist1 中的项目。然后,您比较 item 是否等于 'T'、'A'、'G' 或 'C' 使用 if item == 'A'。

seqlist1 = ... 
 
seqlist2 = [] 
 
for item in seqlist1: 
    if item == 'A': 
        seqlist2.append('T') 
    if item == 'T': 
        seqlist2.append('A') 
    if item == 'C': 
        seqlist2.append('G') 
    if item == 'G': 
        seqlist2.append('C') 
 
print seqlist2 

(我的目标不是给你花哨的一行代码,而是给你初学者看得懂的代码)