从 [list] 字典 python 中删除多个值

ima*_*ake 5 python dictionary list python-2.x

我试图'x'从一个大字典中删除所有值而不删除任何键,但是当我运行代码时仍然有'x'剩余的值。

这是我字典的摘录:

myDict = {0: ['id1', 'id2', 'id3'], 1: ['id1', 'id2', 'x', 'x'], 2: ['id1', 'x', 'x', 'x']} 
Run Code Online (Sandbox Code Playgroud)

到目前为止我的代码:

for k, v in myDict.iteritems():
if v == 'x':
    myDict.remove('x')
print myDict
Run Code Online (Sandbox Code Playgroud)

我的目标是:

myDict = {0: ['id1', 'id2', 'id3'], 1: ['id1', 'id2'], 2: ['id1']}
Run Code Online (Sandbox Code Playgroud)

请问我应该如何删除'x'列表中的值?

gtl*_*ert 5

您可以在字典理解中使用列表理解,如下所示:

myDict = {k:[el for el in v if el != 'x'] for k, v in myDict.items()}
print(myDict)
Run Code Online (Sandbox Code Playgroud)

输出

{0: ['id1', 'id2', 'id3'], 1: ['id1', 'id2'], 2: ['id1']}
Run Code Online (Sandbox Code Playgroud)