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

0 投票
1 回答
1355 浏览
提问于 2025-04-18 00:03

我有一个函数 h(),它会返回一个元组,这个元组包含一个列表中出现频率最高的元素和它在一个叫做 "Values" 的字典中的值。举个例子,如果在 list1 中出现频率最高的元素是字符串 "test",它出现了三次,而在字典 Values = {"test":10} 中对应的值是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

Remove 这个方法只期望处理一个单独的元素。

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]

撰写回答