How to remove dictionary key with known value?
假设python dict:
1
| mydict = {'a': 100, 'b': 200, 'c': 300} |
我知道其中一个价值观:
如何从dict中删除'b': 200对?我需要这个:
1
| mydict = {'a': 100, 'c': 300} |
- 您不应该创建一个名为dict的字典,它将覆盖内置的。
- 你说得对,这只是一个pseudecode。重命名它。
- 从python字典中删除项目的最佳方法的可能副本?
使用一dictionary comprehension。注(AA,除非有jonrsharpe),这将创建一个新的词典,这是关键excludes价值:对,你想消除。如果你想删除它从您的原始字典然后请看他的答案。
1 2 3 4 5 6
| >>> d = {'a': 100, 'b': 200, 'c': 300}
>>> val = 200
# Use d.items() for Python 2.x and d.iteritems() for Python 3.x
>>> d2 = {k:v for k,v in d.items() if v != val}
>>> d2
{'a': 100, 'c': 300} |
- 这说明,将建立在字典excluding the value,它比"from the original词典除尘
- 但我items()+ 1的RID OF
- 好的,这是正确的。这似乎是一个问题跟文:to be over the Whole迭代迭代的结果。不到第一点where the value is found?
- 如果你知道一个key value is only:那么你对词典的答案会jonrsharpe'蓝晶石(creating在词典或类似)。然后你可以breakon the first instance。在你使用任何房屋在forneed to proper比环相当的理解。
它听起来你想要的:
1 2 3 4
| for key, val in list(mydict.items()):
if val == value:
del mydict[key]
break # unless you want to remove multiple occurences |
- is to modify the恩好的,当前迭代通?为什么mydict.items()are used is this?
- 在这个解决方案python3失败(因为mydict.items RuntimeError: dictionary changed size during iteration)(回车)python2列表迭代器类不安。
- "我在运行结束pbacterio for which using version 3.3.2 -你?
- 对不起,我没有测试occurrences statement to remove the break多。在这房子十分mydict.items()with this to wrap list防止数据库。
- "pbacterio啊,你是正确的;12,谢谢你
我发现在《simplest:
1 2
| for key in [k for k,v in mydict.items() if v==200]:
del mydict[key] |
- Down the为什么投票?
- 你的不downvote unnecessarily creating,but你理解,你只在列表的迭代式。而不是使用Gen should表达。你的upvoted回到零
- 我不使用,因为可以在发电机产生的误差occurrences to remove如果你多尝试。
- 哦,好的!良好的呼叫。我的坏。
你会需要在两个环的每一个项目的(),它与字典的理解:
1
| new_dict = {k:v for k,v in my_dict.items() if predicate(value)} |
修饰或在现有词典:
1 2 3
| for k,v in my_dict.items():
if not predicate(v):
del my_dict[k] |
- 这是它!我breakafter the。这是我想要的,谢谢。
- are there for传教(Python文档)?
- "不,这只是pythonishvili正则函数在Python or expression that你need to define