Python如何从具有多个值的字典键中删除特定值?

时间:2016-09-06 13:41:51

标签: python dictionary

我有一个字典,每个键有多个值,每个值有两个元素(可能更多)。我想迭代每个键的每个值对,并删除符合某些条件的值对。例如,我想删除密钥A的第二个值对;那是:('Ok!', '0')

myDict = {'A': [('Yes!', '8'), ('Ok!', '0')], 'B': [('No!', '2')]}

为:

myDict = {'A': [('Yes!', '8')], 'B': [('No!', '2')]}

我可以按键或值迭代字典,但无法弄清楚如何删除特定值。

3 个答案:

答案 0 :(得分:3)

这样的代码:

myDict = {'A': [('Yes!', '8'), ('Ok!', '0')], 'B': [('No!', '2')]}
for v in myDict.values():
    if ('Ok!', '0') in v:
        v.remove(('Ok!', '0'))
print(myDict)

答案 1 :(得分:0)

您也可以这样:

myDict = {'A': [('Yes!', '8'), ('Ok!', '0')], 'B': [('No!', '2')]}
del myDict['A'][1]
print(myDict)

说明:

myDict ['A']-它将获取带有密钥A的值

myDict ['A'] [1]-它将获取第一个索引元组

del myDict ['A'] [1]-现在,这将删除该元组

答案 2 :(得分:-3)

myDict = {'A': [('Yes!', '8'), ('Ok!', '0')], 'B': [('No!', '2')]}
for v in myDict.values():
    for x in v:
        if x[0] == 'Ok!' and x[1] == '0':
            v.remove(x)
print(myDic)