首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >除了一个特定的子集之外,是否有可能遍历字典的所有键呢?

除了一个特定的子集之外,是否有可能遍历字典的所有键呢?
EN

Stack Overflow用户
提问于 2021-01-31 04:14:46
回答 3查看 1.5K关注 0票数 2

假设我有一本字典,里面的钥匙都是数字1-10。我想迭代一遍,不包括键6-8。能不能做些类似的事

代码语言:javascript
运行
复制
for key in dictionary.keys().exclude([1,2,3])

我用.exclude()来演示我想要做的事情。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-01-31 04:26:38

请记住,字典的键是唯一的,所以使用set操作是合适的(并且非常有表现力):

代码语言:javascript
运行
复制
dictionary = {i: i for i in range(1, 11, 1)}

for key in set(dictionary) - set([1, 2, 3]):
    print(key)

您还可以使用set文本而不是显式的set转换,如下所示:

代码语言:javascript
运行
复制
for key in set(dictionary) - {1, 2, 3}:
    print(key)

而且,正如注释中指出的那样,dictionary.keys()与您最初的做法一样,它的行为方式与set(dictionary)相同。

票数 3
EN

Stack Overflow用户

发布于 2021-01-31 04:21:39

代码语言:javascript
运行
复制
for key in [k for k in dictionary.keys() if k not in [1,2,3]]:
   ... do something
票数 2
EN

Stack Overflow用户

发布于 2021-01-31 04:32:00

绕过循环中的几次迭代的一种方法是使用continue.

代码语言:javascript
运行
复制
dictionary = {1: 1, 2: 2, 3 : 3, 4: 4}

for key in dictionary:
   if key in {1, 2, 3}:
      continue
   print(key)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65975676

复制
相关文章

相似问题

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