python dict用法

鍵(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,可以使用 dictget 方法,指定鍵不存在時傳回的預設值。例如:

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

你可能感兴趣的:(python dict用法)