逐项搜索Python列表中的元素,并基于条件语句创建新列表

Adj*_*con 1 python loops for-loop list

我似乎无法弄清楚迭代循环将在我的场景中做我需要的.

我有一个清单:

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']
Run Code Online (Sandbox Code Playgroud)

另一个空列表:

seqlist2 = []
Run Code Online (Sandbox Code Playgroud)

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

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

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
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

raf*_*elc 5

您的方法是正确的,但您的语法错误.

只需seqlist1使用语法迭代并检查每个项目 for item in 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
Run Code Online (Sandbox Code Playgroud)

(我的目标不是为您提供精美的单行代码,而是您可以理解的代码,因为您是初学者)