回答編集履歴

1 コメントの追記

mather

mather score 3532

2018/07/01 16:43  投稿

`a,b,c,d` の変数が具体的に何かわからないので以下のサンプルコードは文字列としてます。
`for` を使う方法
```python
target = [["a","Tokyo"],["b","sapporo"],["c","Chiba"],["d","Tokyo"]]
result = []
for element in target:
   if element[1] != "Tokyo":
       result.append(element)
```
`filter` を使う方法
リストを順番に操作している最中にリストそのものを更新するようにしてしまうと、間違いが起こり易いです。そのため、結果リストを別に作るなど工夫する方がいいと思います。
また、リストを `for` で処理するときは、長さでループするのも常套手段ですが、直接値を使う方法も覚えておきましょう。
別解: `filter` を使う方法
```python
target = [["a","Tokyo"],["b","sapporo"],["c","Chiba"],["d","Tokyo"]]
result = list(filter(lambda x: x[1] != "Tokyo", target))
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る