Python字典(dict)是一个无序的集合,它和Python集合(set)类似。
Python字典(dict)在外面使用中括号{}, 中间元素使用逗号分隔的 key: value 键值对,字典的value值可以通过key直接访问。
Python字典的声明
#!/usr/bin/python
# coding=utf-8
person = {"id":10,"name":"张三","age":23}
print(type(person)) #输出: <class 'dict'>
上面的例子中,person是一个字典对象,在 {} 中包含键值对(key:value)。字典的左侧是一个键(key),右侧是一个值(value)。字典的键key应该是唯一的并且是不可变的对象。输出是字典的类dict。
Python字典的数字、字符串或元组也可以用作字典的键。看下面的例子:
d = {} # 空字典
dict1={1:"One", 2: "Two", 3:"Three"} # 整数类型key
dict2={1.5:"1.5", 2.5: "2.5", 3.5:"3.5"} # 浮点数类型key
dict3={("1","2","3"):"1到3", ("4","5","6"): "4到6"} # 元祖类型的key
dict4= {'one':1, 'two':2, 'three':3, 'four':4, 'five':5} # 字符串类型的key
注意:Python字典的key不可以使用可变对象作为key。
但是,Python不可以用列表作为字典的键,否则报错:TypeError: unhashable type: 'list'。
dic = {["one","two"]:"12", ["three", "four"]:"34"}
同一个键不能在集合中出现多次。如果该键出现了多次,则只保留最后一次。Python的值可以是任何数据类型。一个值可以指定给多个键。
#!/usr/bin/python
# coding=utf-8
numNames = {1:"One", 2:"Two", 3:"Three", 2:"Two", 1:"One", 2:"Two"}
print(numNames) #输出: {1:"One", 2:"Two", 3:"Three"}
可以使用dict()构造函数方法创建字典。
dict1 = dict()
dict2 = dict(a=1, b=1, c=1)
访问Python字典元素
Python字典是一个无序的集合,所以不能通过索引值访问元素。
可以通过中括号的方式,里面包裹字典的键key访问字典的元素,看下面的例子。
#!/usr/bin/python
# coding=utf-8
dict1={1:"One", 2: "Two", 3:"Three"} # 整数类型key
dict2= {'one':1, 'two':2, 'three':3, 'four':4, 'five':5} # 字符串类型的key
print(dict1[2])
print(dict2['two'])
注意:Python访问字典元素的key是区分大小写的。也可以使用get()方法访问字典的元素,这样在字典的元素不存在的时候也不会报错,只会返回None。
#!/usr/bin/python
# coding=utf-8
dict1={1:"One", 2: "Two", 3:"Three"} # 整数类型key
dict2= {'one':1, 'two':2, 'three':3, 'four':4, 'five':5} # 字符串类型的key
print(dict1.get(4))
print(dict2.get("ten"))
上面的例子中,key为4和ten不存在,所以返回None。
Python字典的遍历
使用for循环迭代遍历Python的字典元素。
#!/usr/bin/python
# coding=utf-8
dict1={1:"One", 2: "Two", 3:"Three"} # 整数类型key
for key in dict1:
print("Key = " + str(key) + ", Value = " + dict1.get(key))
输出:Key = 1, Value = One
Key = 2, Value = Two
Key = 3, Value = Three
Key = 2, Value = Two
Key = 3, Value = Three
Python字典元素更新
更新字典元素也是经常需要操作的方法,我们通过方括号的方式直接修改字典的值value,看下面的例子 。
#!/usr/bin/python
# coding=utf-8
dict = {"one":"111", "two":"222", "three":"333"}
print(dict)
dict['one'] = '一'
dict['two'] = '二'
print(dict)
输出:{'one': '111', 'two': '222', 'three': '333'}
{'one': '一', 'two': '二', 'three': '333'}
{'one': '一', 'two': '二', 'three': '333'}
我们也可以给字典增加一个新的键值对。
#!/usr/bin/python
# coding=utf-8
dict = {"one":"111", "two":"222", "three":"333"}
print(dict)
dict['five'] = '555'
dict['six'] = '666'
print(dict)
删除Python字典元素
可以使用del关键字、pop()或popitem()方法从字典或字典对象本身中删除键值对。
要删除键值对,可以使用del[key]方法。要删除字典对象本身,请使用del dict_obj。
#!/usr/bin/python
# coding=utf-8
sites = {'taobao': '淘宝', 'yxjc123': '易学教程', 'baidu': '百度'}
print(sites)
del sites['taobao'] # 删除key为taobao
print(sites)
del sites # 删除对象本身
print(sites) #error
判断Python字典键是否存在
检查判断python字典的键是否存在是经常使用的方法。
#!/usr/bin/python
# coding=utf-8
sites = {'taobao': '淘宝', 'yxjc123': '易学教程', 'baidu': '百度'}
b = 'taobao' in sites
print(b) #True
b = 'yxjc123' in sites
print(b) #True
b = 'jd' in sites
print(b) #False
获取Python字典的键或值列表
可以通过keys()和values()方法返回分别包含键和值的列表。
#!/usr/bin/python
# coding=utf-8
sites = {'taobao': '淘宝', 'yxjc123': '易学教程', 'baidu': '百度'}
print(sites.keys()) #输出: dict_keys(['taobao', 'yxjc123', 'baidu'])
print(sites.values()) #输出: dict_values(['淘宝', '易学教程', '百度'])
Python字典方法函数
介绍Pyhton的dict字典函数
函数 | 说明 |
---|---|
keys() | 获取字典的键列表 |
values() | 获取字典的值列表 |
get() | 通过字典的键获取值 |
clear() | 清空字典 |
items() | 用于将字典转为元祖列表。 |
pop() | 根据字典的键删除元素 |
fromkeys() | 创建一个字典,其中key为可迭代对象,value为指定的值。 |
copy() | 浅复制 |
popitem() | 移除并返回元组 |
setdefault() | 返回指定键的值 |