Python2 字典

字典是Python中唯一内建的一种映射,字典中的值没有特定的顺序,但是都存在一个特定的键里。键可以是数字、字符、元组。
字典中键不能重复
1、创建和使用字典
字典由多个键及其对应的值构成的对组成,每个键和他的值之间用:隔开,项之间用,隔开而整个字典用{}括起来。
例:

>phbk = {'A':123,'B':241,'C':562}
>phbk
>{'A':123,'B':241,'C':562}

2、dict(mapping)函数
dict函数可以通过其他的映射或者(键,值)序列对来建立字典
例:

>items = [('name','tao'),('age',18)]
>d = dict(items)
>d
>{'age': 18, 'name': 'tao'}
>
>#dict()函数还可以通过关键字参数来创建字典
>b = dict(name = 'li',age = 20 ,sex = 'man')
>b
> {'age': 20, 'name': 'li', 'sex': 'man'}

3、字典的基本操作

>#获取键值对数量
>len(d)
>2
>#获取指定键的值
>d['name']
>tao
>#修改指定键的值
>d['age'] = 20
>d
>{'age': 20, 'name': 'tao'}
>#删除指定键值对
>del d['age']
>d
> {'name': 'tao'}
> #检查存在性
> 'name' in d
> True
> #添加键值对
> d['age'] = 18
> d
> {'age': 18, 'name': 'tao'}

字典方法
1、clear()
clear方法用于清除字典中的所有项,不返回值
例:

>d = dict(name = 'tao', age = 18, sex = 'man')
>d
>{'age': 18, 'name': 'tao', 'sex': 'man'}
>d.clear()
>d
> {}

2、copy()/deepcopy()
copy方法返回一个具有相同键值对的新字典(这个方法实现的浅复制(shallow copy)因为值是相同的,不是真正的副本)
copy()浅拷贝:只拷贝顶级的对象,或者说:父级对象
deepcopy()深拷贝:拷贝所有对象,顶级对象及其嵌套对象。或者说:父级对象及其子对象
总结:
深浅拷贝都是对源对象的复制,占用不同的内存空间
如果源对象只有一级目录的话,源做任何改动,不影响深浅拷贝对象
如果源对象不止一级目录的话,源做任何改动,都要影响浅拷贝,但不影响深拷贝
序列对象的切片其实是浅拷贝,即只拷贝顶级的对象
copy()/deepcopy()的区别见:Python中的深拷贝和浅拷贝详解
例:

from copy import deepcopy

d = dict(name = 'tao', sex = 'man', age = 18, worke = ['beijing', 'baidu'])
b = d.copy()
c = deepcopy(d)
d['name'] = 'li'
d['worke'].remove('beijing')
print d
print b
print c

>  {'age': 18, 'sex': 'man', 'worke': ['baidu'], 'name': 'li'}
>{'age': 18, 'worke': ['baidu'], 'name': 'tao', 'sex': 'man'}
>{'age': 18, 'worke': ['beijing', 'baidu'], 'name': 'tao', 'sex': 'man'}
>  #可以看出来浅拷贝当替换值的时候原始字典不受影响,但是修改值的时两个都受影响,因为同样的值也存储在原来的字典里
>  #深拷贝时则生成的时完全的副本

3、get()
get方法使用来访问字典的,当字典中不存在的时候返回None
例:

>d = {}
>print d['name']
>Traceback (most recent call last):

>  File "<ipython-input-65-db1ed725c8be>", line 1, in <module>
>    print d['name']

>KeyError: 'name'
>
>#get(方法)
>print d.get('name')
>None

4、values、itervalus
valus方法以列表的形式返回字典中的值,itervalues发挥值的迭代器,返回的列表中更可以包含重复的元素。
5、keys、iterkeys
keys方法将字典中的键以列表的形式返回,而iterkeys则返回键的迭代器
6、pop
pop方法用来获取对应于给定键的值,然后将这个键值对从字典中移除
例:

>d = dict(name = 'tao', sex = 'man', age = 18, worke = ['beijing', 'baidu'])
>d.pop('worke')
>['beijing', 'baidu']
>d
> {'age': 18, 'name': 'tao', 'sex': 'man'}

7、popitem
popitem方法与list.pop。用于每次随机删除一个键值对
例:

>d = dict(name = 'tao', sex = 'man', age = 18, worke = ['beijing', 'baidu'])
>d.popitem()
>('age', 18)
>d
>{'name': 'tao', 'sex': 'man', 'worke': ['beijing', 'baidu']}

8、update
update方法可以利用一个字典项更新另外一个字典,当字典中有重复的键时被覆盖更新
例:

>d = dict(name = 'tao', sex = 'man', age = 18, worke = ['beijing', 'baidu'])
>b = dict(school = 'MIT', name = 'li')
>d.update(b)
>d
>{'age': 18,
 'name': 'li',
 'school': 'MIT',
 'sex': 'man',
 'worke': ['beijing', 'baidu']}

9、items、iteritems
items方法将所有字典里的项以列表的方式返回,没有顺序。iteritems返回的时迭代器对象。
例:

>d = dict(name = 'tao', sex = 'man', age = 18, worke = ['beijing', 'baidu'])
>d.items()
>[('age', 18), ('sex', 'man'), ('worke', ['beijing', 'baidu']), ('name', 'tao')]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值