我有一个字符列表:
Char_list = ['C', 'A', 'G']
和列表列表:
List_List = [['A', 'C', 'T'], ['C', 'A', 'T', 'G'], ['A', 'C', 'G']]
我想从 List_List
中相应索引 i
的列表中删除每个 Char_list[i]
。
输出必须如下所示:
[['A','T'], ['C', 'T', 'G'], ['A', 'C']]
我正在尝试的是:
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
但从上面的代码中,每个字符都从所有列表中删除。
如何只从 List_list
中的相应列表中删除 Char_list[i]
?
最佳答案
不使用显式索引,而是将您的两个列表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']]
关于python - 从 python 中的列表列表中删除列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43441033/