从python中的列表列表中删除列表项

say*_*.ff 4 python loops nested list

我有一个字符列表:

Char_list = ['C', 'A', 'G']
Run Code Online (Sandbox Code Playgroud)

和列表清单:

List_List = [['A', 'C', 'T'], ['C', 'A', 'T', 'G'], ['A', 'C', 'G']]
Run Code Online (Sandbox Code Playgroud)

我想删除每一个Char_list[i]从相应指数的列表iList_List.

输出必须如下:

[['A','T'], ['C', 'T', 'G'], ['A', 'C']] 
Run Code Online (Sandbox Code Playgroud)

我在想的是:

for i in range(len(Char_list)):
    for j in range(len(List_List)):
        if Char_list[i] in List_List[j]:
            List_List[j].remove(Char_list[i])
print list_list
Run Code Online (Sandbox Code Playgroud)

但是从上面的代码中,每个字符都从所有列表中删除.

如何Char_list[i]从相应的列表中删除List_list

tim*_*geb 6

不是使用显式索引,而是zip将两个列表放在一起,然后应用列表推导来过滤掉每个位置的不需要的字符.

>>> char_list = ['C', 'A', 'G']
>>> list_list = [['A', 'C', 'T'], ['C','A', 'T', 'G'], ['A', 'C', 'G']]
>>> [[x for x in l if x != y] for l, y in zip(list_list, char_list)]
[['A', 'T'], ['C', 'T', 'G'], ['A', 'C']]
Run Code Online (Sandbox Code Playgroud)