2017-11-02 15 views
0

私は以下のリストを持っています。リスト内の要素を検索し、Pythonで削除する

mylist = [["i", "love", "to", "eat", "tim tam"], ["tim tam", "is", "my", "favourite", 
"chocolate", "and", "i", "eat", "it", "everyday"]] 

また、以下のようにリストがあります。stops

stops = ["and", "the", "up" "to", "is", "i", "it"] 

は今、私はmylistを検索し、そこから前述のstopsを削除したいです。したがって、私の最後のmylistは次のようになります。

mylist = [["love", "eat", "tim tam"], ["tim tam", "my", "favourite", "chocolate", "eat", "everyday"]] 

私の現在のコードは以下の通りです。

for k in mylist: 
    for item in k: 
     if k in stops: 
      pop(k) 

これは私にTypeError: unhashable type: 'list'を与えます。私を助けてください。

+3

「停止中のアイテム:」という意味ですか? – omijn

+0

@omijnああ、愚かな私:DIはそれを気付かなかった:) –

答えて

0

最も簡単な方法は、結果を含む新しいリストを作成することです。これを行うには

[[i for i in s if i not in stops] for s in mylist] 

、より効率的な方法は、より高速なメンバーシップのテストを行う、stopsのうち、セットを作成することです:

stops_set = set(stops) 
[[i for i in s if i not in stops_set] for s in mylist] 
0

ブルートフォースソリューション:

mylist = [["i", "love", "to", "eat", "tim tam"], ["tim tam", "is", "my", "favourite", 
"chocolate", "and", "i", "eat", "it", "everyday"]] 

stops = ["and", "the", "up","to", "is", "i", "it"] 

for currlist in mylist: 
    for i in stops: 
     if i in currlist: 
      currlist.remove(i) 

print(mylist) 

・ホープ、このことができます!

+0

答えはすでにここに記載されている(https://stackoverflow.com/questions/47068199/search-an-element-in-a-list)削除されていますか?noredirect = 1#comment81084357_47068199)。あなたの答えは、コードのコピー貼り付け以外に何か大きなものを加えていますか? –

+0

する必要があります。 'mylistのcurrlistの場合: currlistのiの場合: もし私が止まったら:'そうですか? :) –

+0

@Volkaでもうまく動作します –

関連する問題