删除键的值而不删除键

时间:2017-01-16 09:43:39

标签: python

我有一个列表作为值列表。现在我在选择值时从列表中随机选择一个值,必须删除该值。所以不再使用它们,但必须保持关键和外在的价值。

这不是我的代码。简化它来解释它。

dic1 ={1:[[0,1],[1,1]],2:[[0,1],[1,1]]}

for key,value in dic1.items():
  if key == 2:
    # for example, I want to delete from key 2: list element [0,1]
    # so key 1 : [0,1] stays

1 个答案:

答案 0 :(得分:5)

不循环,字典是为了避免O(n)循环:

dic1 ={1:[[0,1],[1,1]],2:[[0,1],[1,1]]}

按键访问字典:获取值的引用。由于您知道其中包含哪些数据,因此您可以删除第一个列表项:

dic1[2].pop(0)

当然,在一般情况下你必须更安全地写它:

k = 2
value = dic1.get(2,None) # returns None if key not found
if isinstance(value,list) and value: # this is a list, and not empty
    value.pop(0)
else:
    # error message
    print("Warning: nothing done")