2015-10-05 104 views
-3

我想删除密钥的值,但将密钥保存在我的字典中。 随着dict.pop键被删除,我需要在字典中的关键。 我该怎么做?删除密钥的值并保留密钥

+0

你是什么意思“删除值”吗?将它设置为'“”'? –

+0

没有什么东西像'没有价值'。你的意思是'没有'? –

+0

对不起,我有一个列表字典,我想删除一个键的所有元素,但保留键,并将空列表作为值。 – euler87

回答

1

您不能删除该值并保留密钥。 充其量您可以将值设置为一个定点,如None

d = {'foo': 42, 'bar': 81} 
d['foo'] = None 

None仍然是一个价值,但在你的程序,你可以认为这意味着“没有价值”,如果适合您的使用 - 案例。

然后,您可以测试定点:

if d[key] is None: 
    # 'no value' case 

如果None是一个有效的值,选择不同的单标记值:

_sentinel = object() 
d['foo'] = _sentinel 

if d[key] is _sentinel: 
    # 'no value' case 

如果你是在谈论一个列表作为值,只需清除列表。空列表对象是仍值

d = {'foo': [1, 2, 3], 'bar': ['spam', 'eggs']} 
d['foo'] = []  # assign new, empty list 
del d['bar'][:] # empty list in-place 
+0

如果'None'是一个有效值,我是哨兵的风扇:'null = object()'。 – kay

+0

@Kay:是的,尽管我更喜欢显式的'_sentinel'名称而不是'null'。 –

0

试试下面的代码:

dict[key].remove(value)