Python:如果它是字典中给定值的键,则删除列表项

时间:2014-03-26 22:09:24

标签: python python-3.x dictionary

我有一个函数h(),它返回一个对应于列表中最常见元素的元组,以及一个名为" Values"的字典中的值。 - 例如,如果list1中最常见的元素是字符串"test",它出现三次并且对应Values = {"test":10},那么h(list1) = [3,10]

当两个列表共享相同的元素/频率时,我想删除最常见的元素。以下是我正在尝试的内容:

list1.remove([k for k,v in Values.items() if v == h(list1)[1]])
ValueError: list.remove(x): x not in list

如何根据Values字典中的值从列表中删除密钥?

1 个答案:

答案 0 :(得分:0)

删除只需要一个元素。

toremove = {k for k,v in Values.items() if v == h(list1)[1]]}
#either:
for r in toremove:
    list1.remove(r)
#or (less efficient)
list1 = = [i for i in list1 if i not in toremove]