我有一个将列表作为值的字典。现在,我从列表中随机选择一个值,当该值被选取时,该值必须被删除。所以它们不会被再次使用,但是键和外部值必须保留。
这不是我的代码。简化它来解释它。
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发布于 2017-01-16 17:44:51
不要循环,字典是用来避免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")https://stackoverflow.com/questions/41673391
复制相似问题