Python 中的字典是一种可变容器类型,用于存储具有映射关系的数据。字典由键和值组成,键是唯一的,值可以是任何类型。

1、创建字典

字典可以使用dict() 函数和使用花括号创建,例如:

# 使用花括号创建字典
my_dict = {'name': 'cjavapy', 'age': 25, 'city': 'shanghai'}

# 使用 dict() 函数创建字典
another_dict = dict(name='cjavapy', age=30, city='Boston')

2、访问字典

可以使用键来访问字典中的值,代码如下:

dict = {'Name': 'abc', 'Age': 7, 'Class': '22'}; 
print("dict['Name']: ", dict['Name'])
print("dict['Age']: ", dict['Age'])

输出结果:

dict['Name']:  abc
dict['Age']:  7

3、修改和新增字典

可以添加新的键值对,或者修改已有的值。

dict = {'Name': 'abc', 'Age': 7, 'Class': '22'}; 
dict['Name']="levi"; #更新字典的存的值
dict['Address']="home";#新增一个新的键值对
print("dict['Name']: ", dict['Name'])
print("dict['Age']: ", dict['Age'])

输出结果:

dict['Name']:  levi
dict['Address']:  home

4、删除字典中的元素

dict =  {'Name': 'abc', 'Age': 7, 'Class': '22'}; 
del dict['Name']; # 删除键是'Name'的条目
dict.clear();     # 清空词典所有条目
del dict ;        # 删除词典
print("dict['Age']: ", dict['Age'])
print("dict['Address']: ", dict['Address'])

代码执行这会引发一个异常,因为用del后字典不存在:

dict['Age']:
Traceback (most recent call last):
  File "test.py", line 8, in
    print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

5、字典内置函数和方法

方法描述
cmp(dict1, dict2)比较两个字典元素。
len(dict)计算字典元素个数,即键的总数。
str(dict)输出字典可打印的字符串表示。
type(variable)返回输入的变量类型,
如果变量是字典就返回字典类型。
dict.clear()删除字典内所有元素。
dict.copy()返回一个字典的浅复制。
dict.fromkeys(seq[, val])创建一个新字典,以序列 seq 中元素做字典的键,
val 为字典所有键对应的初始值。
dict.get(key, default=None)返回指定键的值,如果值不在字典中返回default值。
dict.has_key(key)如果键在字典dict里返回true,否则返回false。
dict.items()以列表返回可遍历的(键, 值) 元组数组。
dict.keys()以列表返回一个字典所有的键。
dict.setdefault(key, default=None)和get()类似, 但如果键不存在于字典中,
将会添加键并将值设为default。
dict.update(dict2)把字典dict2的键/值对更新到dict里。
dict.values()以列表返回字典中的所有值。
pop(key[,default])删除字典给定键 key 所对应的值,
返回值为被删除的值。key值必须给出。
否则,返回default值。
popitem()随机返回并删除字典中的一对键和值。

推荐文档