pythondict_Python 基础数据类型之dict

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

1、字典的定义

dict1 = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

dict2= {'abc': 456};

dict3= {'abc': 123, 10: 20};

dict4= {} #定义空字典

dict5 = dict() #定义空字典

2、字典的访问

字典的索引就是字典的键值

dict= {'Name': 'Zara', 'Age': 7, 'Class': 'First'};print "dict['Name']:", dict['Name'];print "dict['Age']:", dict['Age'];#运行结果

dict['Name']: Zara

dict['Age']: 7

3、修改字典条目

键值存在则更改原Value值,键值不存在则增加新的键值对

dict = {"one": 1, "two": 2, "three": 3, };

dict['one'] = 100; #如存在,则更新存在的条目

dict['four'] = 4; #如不存在则添加新条目

print "dict['one']:", dict['one'];print "dict['four']:", dict['four'];printdict#运行结果

dict['one']: 100dict['four']: 4{'four': 4, 'three': 3, 'two': 2, 'one': 100}

4、删除字典

删除包括:删除单个元素、删除所有元素、删除整个字典

dict = {"one": 1, "two": 2, "three": 3,};del dict['one']; #删除键是'Name'的条目

printdict

dict.clear();#清空词典所有条目

printdictdel dict; #删除词典#print dict #此句会报TypeErro错,应为字典已经不存在了

#运行结果

{'three': 3, 'two': 2}

{}

5、字典的常用方法

1、 dict.clear() #删除字典内所有元素

ContractedBlock.gif

ExpandedBlockStart.gif

dict = {'Name': 'yang', "age": 20}printdict

dict.clear()printdict#running result

{'age': 20, 'Name': 'yang'}

{}

View Code

2、 dict.copy() #返回一个字典的浅复制

3、dict.fromkeys(seq[, val]) #创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值

ContractedBlock.gif

ExpandedBlockStart.gif

seq = ('name', 'age', 'sex')

dict=dict.fromkeys(seq)print "New Dictionary : %s" %str(dict)

dict= dict.fromkeys(seq, 10)print "New Dictionary : %s" %str(dict)#运行结果

New Dictionary : {'age': None, 'name': None, 'sex': None}

New Dictionary : {'age': 10, 'name': 10, 'sex': 10}

View Code

4、 dict.get(key, default=None) #返回指定键的值,如果值不在字典中返回default值

ContractedBlock.gif

ExpandedBlockStart.gif

dict = {'Name': 'yang', 'Age': 27}print "Value : %s" % dict.get('Age') #有则返回Value值

print "Value : %s" % dict.get('Sex', "Never") #没有则返回给定的Value值

print "Value : %s" % dict.get('Sex') #没有给定Value 返回NONE

#运行结果

Value : 27Value : Never

Value : None

View Code

5、 dict.has_key(key) #如果键在字典dict里返回true,否则返回false

ContractedBlock.gif

ExpandedBlockStart.gif

dict = {'Name': 'yang', 'Age': 27}print "Value : %s" % dict.has_key('Age')print "Value : %s" % dict.has_key('Sex')#运行结果

Value : True

Value : False

View Code

6、 dict.items() #以列表返回可遍历的(键, 值) 元组数组

dict.iteritems(self) #生成一个包含所有键值对的可迭代对象

dict.viewitems(self) # 功能和iteritems类似,但是能体现出变化的值

ContractedBlock.gif

ExpandedBlockStart.gif

dict = {'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}print "字典值 : %s" %dict.items()#遍历字典列表

for key, values indict.items():printkey, values#遍历可迭代的对象 iteritems实现

for key, values indict.iteritems():printkey, values#遍历可迭代的对象 viewitems实现

for key, values indict.viewitems():printkey, values#运行结果

字典值 : [('aaa', 'www.aaa.com'), ('bbb', 'www.bbb.com'), ('ccc', 'www.ccc.com')]

aaa www.aaa.com

bbb www.bbb.com

ccc www.ccc.com

aaa www.aaa.com

bbb www.bbb.com

ccc www.ccc.com

aaa www.aaa.com

bbb www.bbb.com

ccc www.ccc.com

View Code

7、 dict.keys() #以列表返回一个字典所有的键

dict.iterkeys(self) #返回一个包含所有键的可迭代对象

dict.viewkeys(self) # 功能和iterkeys类似,但是能体现出变化的值

ContractedBlock.gif

ExpandedBlockStart.gif

dict = {'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}print "键 : %s" %dict.keys()#遍历字典列表

for key indict.keys():print ("dict.keys(): %s" %key)#遍历可迭代的对象 iteritems实现

for key indict.iterkeys():print ("dict.iterkeys(): %s" %key)#遍历可迭代的对象 viewitems实现

for key indict.viewkeys():print ("dict.viewkeys(): %s" %key)#运行结果

键 : ['aaa', 'bbb', 'ccc']

dict.keys(): aaa

dict.keys(): bbb

dict.keys(): ccc

dict.iterkeys(): aaa

dict.iterkeys(): bbb

dict.iterkeys(): ccc

dict.viewkeys(): aaa

dict.viewkeys(): bbb

dict.viewkeys(): ccc

View Code

8、 dict.values() #以列表返回字典中的所有值

dict.itervalues(self) 返回一个包含所有Value的可迭代对象

dict.viewvalues(self) # 功能和itervalues类似,但是能体现出变化的值

ContractedBlock.gif

ExpandedBlockStart.gif

dict = {'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}print "Value值 : %s" %dict.values()#遍历字典列表

for value indict.values():print ("dict.values(): %s" %value)#遍历可迭代的对象 iteritems实现

for value indict.itervalues():print ("dict.itervalues(): %s" %value)#遍历可迭代的对象 viewitems实现

for value indict.viewvalues():print ("dict.viewvalues(): %s" %value)#运行结果

Value值 : ['www.aaa.com', 'www.bbb.com', 'www.ccc.com']

dict.values(): www.aaa.com

dict.values(): www.bbb.com

dict.values(): www.ccc.com

dict.itervalues(): www.aaa.com

dict.itervalues(): www.bbb.com

dict.itervalues(): www.ccc.com

dict.viewvalues(): www.aaa.com

dict.viewvalues(): www.bbb.com

dict.viewvalues(): www.ccc.com

View Code

9、 dict.setdefault(key, default=None) #和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

ContractedBlock.gif

ExpandedBlockStart.gif

#!/usr/bin/env python#-*- coding:utf-8 -*-

dict = {'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}

a= dict.setdefault("aaa") #有该键则返回Value值

b = dict.setdefault("ddd","www.ddd.com") #没有该键 则在字典中添加,并返回给定的值

printa, bprintdict#运行结果

www.aaa.com www.ddd.com

{'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com', 'ddd': 'www.ddd.com'}

View Code

10、dict.update(dict2) #把字典dict2的键/值对更新到dict里

ContractedBlock.gif

ExpandedBlockStart.gif

dict = {'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}

dict2= {100:100}

dict.update({"ddd":"www.ddd.com"})printdict

dict.update(dict2)printdict#运行结果

{'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com', 'ddd': 'www.ddd.com'}

{100: 100, 'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com', 'ddd': 'www.ddd.com'}

View Code

11、dict.pop(key[,default]) #删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

ContractedBlock.gif

ExpandedBlockStart.gif

#!/usr/bin/env python#-*- coding:utf-8 -*-

dict = {'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}print dict.pop("aaa") #如果键存在,则在字典中删除对应键值对,并返回Value值

print dict.pop("ddd", "www.ddd.com") #如果键不存在,则返回给定的默认Value值

printdict#运行结果

www.aaa.com

www.ddd.com

{'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}

View Code

12、dict.popitem() 随机返回并删除字典中的一对键和值。

ContractedBlock.gif

ExpandedBlockStart.gif

#!/usr/bin/env python#-*- coding:utf-8 -*-

dict = {'aaa': 'www.aaa.com', 'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}

a=dict.popitem()print a #随机删除的键值对

print dict #打印随机删除一个键值对后的字典

#运行结果

('aaa', 'www.aaa.com')

{'bbb': 'www.bbb.com', 'ccc': 'www.ccc.com'}

View Code

6.字典的内置函数

1、 cmp(dict1, dict2) #比较两个字典元素。

2、len(dict) #计算字典元素个数,即键的总数。

3、str(dict) #输出字典可打印的字符串表示。

4、type(variable) #返回输入的变量类型,如果变量是字典就返回字典类型。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值