给出一个嵌套列表,例如[['N','L'],['G','N','L'],['N','B']],我想删除所有['N','L']的出现。我编写了以下代码来做到这一点。
def eliminate_elements(my_list, to_eliminate):
'''
To complete.
'''
for sub_list in my_list:
for i in sub_list:
if i in to_eliminate:
sub_list.remove(i)
return my_list
[当我运行eliminate_elements([['N', 'L'], ['G', 'N','L'], ['N', 'B']], ['N','L'])
时,我希望输出为[[],['G'], ['B']]
,尽管只删除了'N',而我的输出是[['L'], ['G', 'L'], ['B']]
为什么当显然是to_eliminate中的一个元素时却不删除'L' ?请注意,我不想内置python函数来执行此操作,我必须创建自己的函数,该函数不依赖任何外部模块或函数。
# your code goes here
def eliminate_elements(my_list, to_eliminate):
'''
To complete.
'''
for sub_list in my_list:
for i in to_eliminate:
if i in sub_list:
occu = sub_list.count(i)
for _ in range(occu):
sub_list.remove(i)
return my_list
print(eliminate_elements( [['N', 'L'], ['G', 'N', 'L'], ['N', 'B']], ['N', 'L']))
输出
[[], ['G'], ['B']]