首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >删除dic的值而不删除密钥

删除dic的值而不删除密钥
EN

Stack Overflow用户
提问于 2017-01-16 17:43:39
回答 1查看 114关注 0票数 0

我有一个将列表作为值的字典。现在,我从列表中随机选择一个值,当该值被选取时,该值必须被删除。所以它们不会被再次使用,但是键和外部值必须保留。

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

代码语言:javascript
运行
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-16 17:44:51

不要循环,字典是用来避免O(n)循环的:

代码语言:javascript
运行
复制
dic1 ={1:[[0,1],[1,1]],2:[[0,1],[1,1]]}

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

代码语言:javascript
运行
复制
dic1[2].pop(0)

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

代码语言:javascript
运行
复制
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")
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41673391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档