使用“ for”循环遍历字典

以下代码使我有些困惑:

d = {'x': 1, 'y': 2, 'z': 3} 
for key in d:
    print key, 'corresponds to', d[key]

我不明白的是key部分。 Python如何识别只需要从字典中读取密钥? key在Python中是一个特殊的词吗? 还是仅仅是一个变量?


#1楼

for .. in .. -syntax中使用for .. in ..字典中进行迭代时,它总是在键上进行迭代(可以使用dictionary[key]来访问值)。

要遍历键值对,在Python 2 for k,v in s.iteritems()for k,v in s.items() ,在Python 3 for k,v in s.items()


#2楼

key只是一个变量名。

for key in d:

只会循环遍历字典中的键,而不是键和值。 要遍历键和值,可以使用以下命令:

对于Python 2.x:

for key, value in d.iteritems():

对于Python 3.x:

for key, value in d.items():

要进行自我测试,请将单词key更改为poop

对于Python 3.x, iteritems()已替换为简单的items() ,它返回了由dict支持的类似set的视图,就像iteritems()但效果更好。 在2.7中也可以通过viewitems()

操作items()将同时适用于2和3,但是在2中它将返回字典的(key, value)对的列表,该列表将不反映对items()调用后字典的更改。 如果要在3.x中使用2.x行为,可以调用list(d.items())


#3楼

这是一个非常常见的循环习惯用法。 in是一个运算符。 有关何时使用for key in dict以及何时必须使用for key in dict.keys()请参阅David Goodger的Idiomatic Python文章(归档副本)


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值