python——字典
如果数据具有唯一性,可以通过字典方式存储,可实现快速查找操作
引入原因:如果在列表中存储了大量的数据,在列表中获取指定的元素就是一件很耗时的操作,这是因为列表是线性顺序存储,如果找到之前一直索引,可以通过索引快速获取元素,如果之前不知道索引,则只能通过遍历找到符合条件的元素。
1. 创建字典
通过{'key1':'value1', 'key2':'value2', 'key3':'value3',...}键值对创建
- “键”可以是python中任意不可变数据,例如:整数、实数、复数或是字符串、元组等类型可哈希数,但不能使用列表、集合、字典或其他可变类型作为字典的“键”
- 通过“键”来计算值的位置,快速获取和他唯一对应的“值”
- “键”是唯一的,不允许重复,而“值”是可以重复的
dict0 = {}
dict1 = {'server':'python.org', 'database':'mysql'}
dict2 = {'河北':'石家庄', '广西':'南宁', '广东':'广州'}
print(type(dict0))
print(type(dict1))
print(type(dict2))
输出
<class 'dict'>
<class 'dict'>
<class 'dict'>
通过内置函数dict()创建
dict3 = dict()
dict4 = dict([('one',1), ('two',2), ('three',3)])
print(dict4)
输出
以关键参数的形式创建字典
dict5 = dict(name='Dong', age=23)
print(dict5)
输出
2. 访问元素
通过dict[键]来访问字典中的对应键的值
如果键值不存在,则会抛出KeyError异常。为了避免这种情况,可以先使用in关键字判定键是否存在于字典中
注意:字典是无序的,不能通过索引访问元素
dict5 = dict(name='Dong', age=23)
print(dict5['age'])
输出
23
dict5 = dict(name='Dong', age=23)
if 'age' in dict5:
print(dict5['age'])
3. 增加修改元素
d[key] = value 将key对应的值修改为value,key不存在则增加新的key对
dict3 = {"001":["张三", 98], "002":["李四", 85], "003":["王五", 76]}
dict3["002"] = ["赵六", 80]
dict3["005"] = ["田七", 79]
print(dict3)
输出
4. 删除元素
del[] dict[key]通过键来实现删除元素,如果键值不存在,同样则会抛出KeyError异常popitem()方法返回并删除字典中的最后一对键和值pop(key)方法key存在就移除,并返回他的value值,如果字典已经为空,就抛出keyError异常
dict5 = dict(name='Dong', sex='M', age=23)
del dict5['age']
print(dict5)
dict5.pop('sex')
print(dict5)
dict5.popitem()
print(dict5)
输出
{'name': 'Dong', 'sex': 'M'}
{'name': 'Dong'}
{}
mydict = dict(name='Dong', sex='M', age=23)
if 'name' in mydict:
mydict.pop('name')
print(mydict)
5. get()和item()方法
get()方法用来返回指定“键”对应的“值”,并且允许指定该键不存在时返回特定的“值”items()方法可以返回字典的键、值对,用元组进行封装
dict3 = {"河北":"石家庄", "广西":"南宁", "广东":"广州"}
print(dict3.get("河北"))
print(dict3.get("河南"))
print(dict3.items())
输出
石家庄
None
dict_items([('河北', '石家庄'), ('广西', '南宁'), ('广东', '广州')])
6. keys()和values()方法
keys()方法可以返回字典的键values()方法可以返回字典的键
dict3 = {"河北":"石家庄", "广西":"南宁", "广东":"广州"}
print(dict3.keys())
print(dict3.values())
输出
dict_keys(['河北', '广西', '广东'])
dict_values(['石家庄', '南宁', '广州'])
7. fromkeys()方法
dict.fromkeys(seq[, value])函数用于创建一个新字典,以给定元素做字典的键,value为字典所有键对应的初始值
# 给定内容为”键“, 创建”值“为空的字典
dict6 = dict.fromkeys(['name', 'age','sex'])
print(dict6)
输出:
8. 长度与检索
len(dict)同列表和元组相同,返回字典中键的数量key in dict运算符测试某个特定的键是否在字典中
dict6 = dict.fromkeys(['name', 'age','sex'])
'name' in dict6
len(dict6)
for key in dict6.keys():
print(key, dict6[key])
输出
3
name None
age None
sex None
本文来自博客园,作者:hcypeu,转载请注明原文链接:https://www.cnblogs.com/hcypeu/p/16475232.html

浙公网安备 33010602011771号