2017-03-07 61 views
-5

我有一个名单列表,我想整个名单上删除重复出现的元素:如何删除列表中的列表中的元素?

one = [['apple','pear','bear'],['apple','drawers','bear','grapes']] 

我想从所有的列表清单one内删除“苹果”。简而言之,我的目标是从所有嵌套列表中删除一个元素“apple”。

new_one = [['pear','bear'],['drawers','bear','grapes']] 

我该怎么做?

+3

为什么只有'apple',为什么不'bear'呢?任何特定的逻辑在这里.. –

+0

添加到mu的问题:如果一个元素在同一列表中出现两次会怎么样? – timgeb

+0

你知道如何从**清单中删除一些**吗?如果是这样,只需使用一个循环来重复该操作。 –

回答

2
newList = [[element for element in sublist if element != "apple"] for sublist in one] 
0

如何:

[ a, b ] = one 
return [ [ x for x in a if x not in b ], [ x for x in b if x not in a ] ] 
0

你也可以试试这个:

for(var x=0;x<one.length;x++) { 
    one[x].splice(one[x].indexOf('apple'), 1); 
} 
0
one = [['apple','pear','bear'],['apple','drawers','bear','grapes']] 
new_one = [element.remove('apple') for element in one] 
# new_one = [['pear','bear'],['drawers','bear','grapes']] 

这个工程如果列出的清单内的任何给定的名单仅包括 '苹果'一次。如果它多次出现,它只会删除第一个“苹果”。

我想从列表中的所有列表中删除'apple'。简而言之,我的目标是从所有嵌套列表中删除一个元素“apple”。

one = [['apple','pear','bear'],['apple','drawers','bear','grapes', 'apple']] 
new_one = [element.remove('apple') for element in one] 
# new_one = [['pear','bear'],['drawers','bear','grapes', 'apple']]