如何在Python中过滤字典?

use*_*795 8 python dictionary

d = {'foo': 'x',
     'bar': 'y',
     'zoo': 'None',
     'foobar': 'None'}
Run Code Online (Sandbox Code Playgroud)

我要筛选其值是所有项目'None',并更新foobar项目与一个特定的值.我试过了:

for i in x.items():
   ....:    if i[i] == 'None':
   ....:        x.pop(i[0])
   ....:    else:
   ....:        x.update({i[0]:'updated'}) 
Run Code Online (Sandbox Code Playgroud)

但它没有用.

kha*_*hik 18

目前尚不清楚'None'你发布的字典里有什么.如果是字符串,则可以使用以下内容:

dict((k, 'updated') for k, v in d.iteritems() if v != 'None')
Run Code Online (Sandbox Code Playgroud)

如果是None,只需替换检查,例如:

dict((k, 'updated') for k, v in d.iteritems() if v is None)
Run Code Online (Sandbox Code Playgroud)

  • 好吧,我想我们永远不会知道. (2认同)

Sil*_*ost 14

目前还不清楚你'updated'从哪里获得价值,但总的来说它看起来像这样:

{i: 'updated' for i, j in d.items() if j != 'None'}
Run Code Online (Sandbox Code Playgroud)

在python2.7或更新版本中.