Python 2.7学习笔记-字典dict

dict相当于Java中的map,是Python中内置映射类数据类型。通过键值存取访问。dict的结构如下:{'key':value,'key2':value2,...}

字典dict 的创建

>>> d={'Monday':1,'Tuesday':2,'Wednesday':3}
>>> type(d)
<type 'dict'>
     注意: 字典的键必须是不可变数据类型

dict中值的查询

格式:变量名[键名]

>>> d['Monday']
1

3 dict中值的添加与修改

添加:格式:字典变量名[新添加的键名] = 新键对应的值

>>> d['Thursday']=5
>>> d
{'Tuesday': 2, 'Thursday': 5, 'Wednesday': 3, 'Monday': 1}

修改:格式:字典变量名[要修改值对应的键名] = 新值

>>> d['Thursday']=4
>>> d
{'Tuesday': 2, 'Thursday': 4, 'Wednesday': 3, 'Monday': 1}
    字典添加和修改方法其实是相同的。新值所要对应的键名如果存在,就是修改操作,如果不存在就相当于添加操作。

dict的删除

字典删方法常见有三种,作用也不同
    1 del方法:删除字典或者某一个键对应的值

           格式:删除一个键值对为:del 空格 变量名[键名],或者 del(变量名[键名];如果为:del 变量名,则删除此字典

>>> d
{'Tuesday': 2, 'Thursday': 4, 'Wednesday': 3, 'Monday': 1}
>>> del d["Monday"]
>>> d
{'Tuesday': 2, 'Thursday': 4, 'Wednesday': 3}
>>> del(d["Tuesday"])
>>> d
{'Thursday': 4, 'Wednesday': 3}

    2 python pop方法:删除键对应的值,但它会把对值的应输出后再删除

>>> d
{'Thursday': 4, 'Wednesday': 3}
>>> d.pop("Thursday")
4
>>> d
{'Wednesday': 3}
3 popitem()方法:随机返回并删除字典中的一对键和值(项)     

>>> d
{'Color': 'Blue', 'age': 100, 'name': 'Sun'}
>>> d.popitem()
('Color', 'Blue')

4 clear方法:清空字典中的所有数据,变量名.clear(),变为空字典

>>> d
{'Wednesday': 3}
>>> d.clear()
>>> d
{}

5 dict中的方法

   5.1 items()和iteritems()

dict.items()返回的是一个基于键值对的列表list,而dict.iteritems()返回的是一个基于键值对的迭代器iterator
dict.items()返回列表list的所有列表项,形如这样的二元组list:[(key,value),(key,value),...],dict.iteritems()是generator, yield 2-tuple。
相对来说,items()需要花费更多内存空间和时间,但访问某一项的时间较快。iteritems()花费很少的空间,通过next()不断取下一个值,但是将花费稍微多的时间来生成下一item。

>>> d={"lll":23,"g":124,"y":8}
>>> d.items()
[('y', 8), ('g', 124), ('lll', 23)]
>>> d.iteritems()
<dictionary-itemiterator object at 0x01A59120>
从结果中可以看到,items()方法是将字典中的每个项分别做为元组(tuple),添加到一个列表中,形成了一个新的列表容器。如果有需要也可以将返回的结果赋值给新变量,这个新的变量就会是一个列表数据类型。

>>> l=d.items()
>>> type(l)
<type 'list'>
>>> l
[('y', 8), ('g', 124), ('lll', 23)]
>>> p=l[1]
>>> p
('g', 124)
>>> type(p)
<type 'tuple'>
>>> p
('g', 124)

>>> it=d.iteritems()
>>> it
<dictionary-itemiterator object at 0x01A59120>
>>> type(it)
<type 'dictionary-itemiterator'>
>>> list(it)
[('y', 8), ('g', 124), ('lll', 23)]

5.2 其他方法

   d.copy() 创建副本
  d2.update(d1) 将d1合并到d2中
  d.keys() 获取所有key
  d.values()获取所有value
  d.get(key,参数) 获取key所对应的值,若键不存在则返回None,用户也可以设定自己的返回参数。如 d.get("Color","Not existed!")
  d.setdefault() 用法见下示例

>>> a={}
>>> a.setdefault('banana')
>>> a
{'banana': None}

>>> a.setdefault('orange',6)
6
>>> a
{'orange': 6, 'banana': None}
      另外,字典可以嵌套字典,如:d = { 'fruit' :{ 'apple':2 , 'orange':3}}

6 字典的遍历

>>> #字典的遍历
>>> d={'Color': 'Blue', 'age': 100, 'name': 'Sun'}
>>> for k in d:
	print "d[%s]="%k,d[k]

	
d[Color]= Blue
d[age]= 100
d[name]= Sun
使用items()进行遍历

>>> d.items()
[('Color', 'Blue'), ('age', 100), ('name', 'Sun')]
>>> #使用items()方法进行遍历
>>> for k,v in d.items():
	print "d[%s]="%k,v

	
d[Color]= Blue
d[age]= 100
d[name]= Sun

使用iteritems()进行遍历

>>> print d.iteritems()
<dictionary-itemiterator object at 0x01B872D0>
>>> for k,v in d.iteritems():
	print "d[%s]="%k,v

	
d[Color]= Blue
d[age]= 100
d[name]= Sun



PS:

>>> d.iterkeys()
<dictionary-keyiterator object at 0x01B872D0>
>>> d.itervalues()
<dictionary-valueiterator object at 0x01B87300>
>>> zip(d.iterkeys(),d.itervalues())
[('Color', 'Blue'), ('age', 100), ('name', 'Sun')]




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值