鍵(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