LoginSignup
8
9

More than 1 year has passed since last update.

dictionary に対して filter()

Last updated at Posted at 2018-02-21

こんにちは。
dictionary に対して filter() を行う関数を作りました1

>> def filter_dict(f, d):
>>     return {k:v for k,v in d.items() if f(k,v)}
>> 
>> d = {1:2, 3:4}
>> filter_dict(lambda k,v: v==2, d)
{1: 2}

他にも各種の方法があるようです(下記例2)。

>> {k:v for k,v in d.items() if v==2}
{1: 2}
>> dict([(k,v) for k,v in d.items() if v==2])
{1: 2}
>> dict(filter(lambda kv: kv[1]==2, d.items()))
{1: 2}
>> {k:v for k,v in filter(lambda kv: kv[1]==2, d.items())}
{1: 2}

  1. 標準ではずばりこのような関数は用意されていないようです。 

  2. コメントを頂いたものも追加しました。 

8
9
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
9