您的位置:首页 > 编程语言 > Python开发

python dict用法

2014-03-24 18:16 405 查看
鍵(Key)值(Value)對應的物件,鍵物件必須是 hashable。以下是一些操作示範:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
>>> passwords = {
'Justin'
:
123456
,
'caterpillar'
:
933933
}

>>> passwords[
'Justin'
]

123456

>>> passwords[
'Hamimi'
] =
970221

# 增加一對鍵值

>>> passwords

{
'caterpillar'
:
933933
,
'Hamimi'
:
970221
,
'Justin'
:
123456
}

>>> del passwords[
'caterpillar'
] # 刪除一對鍵值

>>> passwords

{
'Hamimi'
:
970221
,
'Justin'
:
123456
}

>>> passwords.items()

[(
'Hamimi'
,
970221
),(
'Justin'
,
123456
)]

>>> passwords.keys()

[
'Hamimi'
,
'Justin'
]

>>> passwords.values()

[
970221
,
123456
]

>>>


使用
[]
時如果指定的鍵不存在,會發生
KeyError
,可以使用
dict

get
方法,指定鍵不存在時傳回的預設值。例如:

1
2
3
4
5
6
7
>>> passwords.get(
'openhome'
,
'000000'
)

'000000'

>>> passwords[
'openhome'
]

Traceback (most recent call last):

File
""
,line 
1
,in

KeyError:
'openhome'

>>>


#字典的添加、删除、修改操作

dict = {"a" :"apple","b" :"banana","g" :"grape","o" :"orange"}

dict["w"] ="watermelon"

del(dict["a"])

dict["g"] ="grapefruit"

print dict.pop("b") # 会讲原dict里的内容修改, 无需重新赋值

print dict

dict.clear()#全部清空

print dict

#字典的遍历

dict = {"a" :"apple","b" :"banana","g" :"grape","o" :"orange"}

for k in dict:
print "dict[%s] =" % k,dict[k]

#字典items()的使用

dict = {"a" :"apple","b" :"banana","c" :"grape","d" :"orange"}

#每个元素是一个key和value组成的元组,以列表的方式输出

print dict.items()

#调用items()实现字典的遍历

dict = {"a" :"apple","b" :"banana","g" :"grape","o" :"orange"}

for (k,v) in dict.items():
print "dict[%s] =" % k,v

#调用iteritems()实现字典的遍历

dict = {"a" :"apple","b" :"banana","c" :"grape","d" :"orange"}

print dict.iteritems()

for k,v in dict.iteritems():
print "dict[%s] =" % k,v

for (k,v) in zip(dict.iterkeys(),dict.itervalues()):
print "dict[%s] =" % k,v



#使用列表、字典作为字典的值

dict = {"a" :("apple",),"bo" :{"b" :"banana","o" :"orange"},"g" :["grape","grapefruit"]}

print dict["a"]

print dict["a"][0]

print dict["bo"]

print dict["bo"]["o"]

print dict["g"]

print dict["g"][1]



dict = {"a" :"apple","b" :"banana","c" :"grape","d" :"orange"}

#输出key的列表

print dict.keys()

#输出value的列表

print dict.values()

#每个元素是一个key和value组成的元组,以列表的方式输出

print dict.items()

dict = {"a" :"apple","b" :"banana","c" :"grape","d" :"orange"}

it = dict.iteritems()

print it

#字典中元素的获取方法

dict = {"a" :"apple","b" :"banana","c" :"grape","d" :"orange"}

print dict

print dict.get("c","apple")#如果c存在,则取出c对应的value,print dict.get("e","apple")#如果e 不存在,则取出apple对应的key

#get()的等价语句

D = {"key1" :"value1","key2" :"value2"}

if "key1" in D:
print D["key1"]

else:
print "None"

#字典的更新

dict = {"a" :"apple","b" :"banana"}

print dict

dict2 = {"c" :"grape","d" :"orange"}

dict.update(dict2)#讲dict2的内容全部加入dic

print dict

#udpate()的等价语句

D = {"key1" :"value1","key2" :"value2"}

E = {"key3" :"value3","key4" :"value4"}

for k in E:
D[k] =E[k]

print D

#字典E中含有字典D中的key

D = {"key1" :"value1","key2" :"value2"}

E = {"key2" :"value3","key4" :"value4"}

for k in E:
D[k] =E[k]

print D

#设置默认值

dict = {}

dict.setdefault("a")

print dict

dict["a"] ="apple"

dict.setdefault("a","default") #如果已经添加了value,则再用default也不会更改里面的value

print dict

#调用sorted()排序

dict = {"a" :"apple","b" :"grape","c" :"orange","d" :"banana"}

print dict

#按照key排序

print sorted(dict.items(),key=lambda d:d[0])

#按照value排序

print sorted(dict.items(),key=lambda d:d[1])

#字典的浅拷贝

dict = {"a" :"apple","b" :"grape"}

dict2 = {"c" :"orange","d" :"banana"}

dict2 = dict.copy()

print dict2

#字典的深拷贝

import copy

dict = {"a" :"apple","b" :{"g" :"grape","o" :"orange"}}

dict2 = copy.deepcopy(dict)

dict3 = copy.copy(dict)

dict2["b"]["g"] ="orange"

print dict

dict3["b"]["g"] ="orange"# dict3 与dict 指向了同一快地址空间,因此改变dict3 就改变了dict

print dict
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: