Python入门——字典

字典,作为python中唯一内建的映射类型,由键值的形式存储,键可以是数字、字符串甚至是元组。

注意:字典中的键必须是唯一的,换个说法,键可以是任意的不可变类型。

字典的创建:

phonebook={'Alice':'2345','Beth':'2668'}
print phonebook['Alice']
字典是dict类的实例/对象。

#用dict函数创建字典
d=dict(name='Lucy',age=42)
print d
成员资格:可以用表达式k in d来查找成员是否在字典中,但查找的是键而不是值。找到了键之后获取后面的值就轻而易举了,当然最好用get()方法。

字典中的方法:

1.clear()(无返回值)

d.clear()

x={}
y=x
x['key']='value'
print y
x.clear()
#区别于x={}
print x
print y #当x.clear()后,y也被清空

结果为:

{'key': 'value'}
{}
{}

2.复制:copy()
x={'Alice':'2345','Beth':['2668','4568','3496']}
y=x.copy()
print y
y['Alice']='balabala'
y['Beth'].remove('4568')    #用remove方法删除一个子元素
print x
结果为:

{'Beth': ['2668', '4568', '3496'], 'Alice': '2345'}
{'Beth': ['2668', '3496'], 'Alice': '2345'}

可以看到,当在副本中替换值的时候,原始字典不受影响,但是若修改原始字典也会跟着改变。

另有一种方法避免这种原始字典也被替换的方法——深复制 deepcopy(d)

from copy import deepcopy
x={'Alice':'2345','Beth':['2668','4568','3496']}
z=deepcopy(x)
此时,z中的值替换并不会连带x。

3.fromkeys()

fromkeys方法使用给定的键建立新的字典,每个键都对应一个默认的值None,比如可以再dict上调用该方法

dict.fromkeys(['name','age'])
4.get()

一般来说,如果直接访问字典中不存在的键值时会报错,为避免这样的错误,尽量用get(k)来访问值

5.has_key()

d.has_key(k)该方法与k in d方法相同,python3.0中不包括这个函数,返回值为布尔型

6.items和iteritems

items方法将字典所有项以列表的方式返回,列表中的每一项都表示为(键,值)对的形式,只是在返回的时候没有特定的顺序。

iteritems方法返回一个迭代器对象而不是列表

7.keys和iterkeys

keys方法将键以列表形式返回,同iteritems,iterkeys返回针对键的迭代器对象。

与此同时,还有返回字典中所有值的方法values()和itervalues()

8.pop()

d={'a':1,'b':2,'c':3}
r=d.pop('a')
print d
print r
结果:

{'c': 3, 'b': 2}
1
注意:pop()方法必须得有键这个参数,若是想删除元素而不带参数,可以用popitem()。
9.popitem()
相较于pop()会弹出列表的最后一个元素(原则上),但实际上字典没有“最后的元素”,它是无序的。
10.setdefault()
类似于get方法,能够获得给定键的值,若键不存在,则返回默认值并且相应的更新字典。
11.update()
d.update(x)可用于在字典中添加新的一项x。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值