python字典(dictionary)中get和items、iteritems方法

dictionary

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
值得注意的是,由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值覆盖。

#dict的初始化 key-value
>>>dic = {‘1’:‘one’,2:'two','3':'three'}

取出字典中的值 与get函数

一般的我们可以通过key来获取对应的value,但是也可以使用get函数。
其中get函数原型为dict.get(key, default=None),
参数说明:
key – 字典中要查找的键。
default – 如果指定键的值不存在时,返回该默认值值。默认为None,也可以指定其他值。
返回值:
返回指定键的值,如果值不在字典中返回默认值None。

# 访问的key都存在时,并没有什么区别
# 'one'
>>>dic['1'] 

# 'one'
>>>dic.get('1','No')
#访问的key不存在的时候,就有区别了,get能使程序继续运行下去,而直接通过key访问的方#法会报错
>>>dic['women'] 
# None
>>>print dic.get('women')
#meiyou
>>>print dic.get('womne','meiyou')

items与iteritems

items方法是可以将字典中的所有项,以列表方式返回。也就说将字典转成了list。
iteritems方法与items方法相比作用大致相同,只是它的返回值不是列表,而是一个迭代器。至于为什么要转为迭代器,当然是为了迭代访问字典中的元素。而且由于iteritems是就地转为迭代器的,不同于items会返回一个全新的列表,所以不会消耗额外空间。

>>> dic = {'1':'one', '2':'two', '3':'three'}  
>>> x = dic.items()  
>>> x  
[('1', 'one'), ('3', 'three'), ('2', 'two')]  
>>> type(x)  
<type 'list'>  
>>>type(x[0])
<type 'tuple'>
#  使用iteritems方法
>>> y = d.iteritems()  
>>> type(y)
<type 'dictionary-itemiterator'>
>>> y
<dictionary-itemiterator object at 0x7f70f4ec9890>
# 与下面一节的访问key-value比较一下就可以看出其中的不同了
>>> type(dic)
<type 'dict'>
# 【注意使用了iteritems方法之后】
>>> dic2 = dic.iteritems()
>>> type(dic2)
<type 'dictionary-itemiterator'>
# 将dic转为迭代器之后,直接就可以迭代dic2内的元素了
>>> for k,v in dic2:
...     print k," = == =",v
... 
1  = == = one
3  = == = three
2  = == = two

字典的迭代

顺便提一下字典的迭代。

# 1. 迭代字典的key  
# 1)方法1
>>> for x in dic.keys():
...     print x
... 
1
3
2
# 2) 方法2
>>> for x in dic.iterkeys():
...     print x
... 
1
3
2

#2. 迭代字典的value
# 1)方法1
>>> for v in dic.values():
...     print v
... 
one
three
two
# 2)方法2
>>> for v in dic.itervalues():
...     print v
... 
one
three
two

#迭代key-vlaue对

# 迭代键值对  
>>> for k,v  in dic.items():
...     print k,":",v
... 
1 : one
3 : three
2 : two

>>>for k, v in d.iteritems():  
...     print k, ":", v 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值