dict
格式:
dict={key1:values1,key2:values,key3:values,...}
dict={'name':'john','age':'22','address':'北京'}
字典的常用操作
(1)查找字典中的元素
①直接用变量名查询
for example:
dict={'name':'john','age':'22','address':'北京'}
print(dict['name'],dict['age'])
程序运行结果:
john 22
②get()
在字典中找元素是根据key(键)值来找
dict={'name':'john','age':'22','address':'北京'}
age=dict.get('age')
print(age)
id=dict.get('id')
print(id)
phone_name=dict.get('phone_name',12345678)
print(phone_name)
程序运行结果:
22
None
12345678
我们在字典中查找一个元素但是又不确定这个元素在不在字典中,这是我们就可以是get()函数了,如果元素不存在于字典中,返回值为None,并且可以直接用get()函数来设置一个默认值.
(2)在字典中添加一个元素**
for example:
dict={'name':'john','age':'22','address':'北京'}
dict['phone_name']=1234555443
print(dict)
程序运行结果:
{‘name’: ‘john’, ‘age’: ‘22’, ‘address’: ‘北京’, ‘phone_name’: 1234555443}
变量名[“键”]=数据时,如果字典中没有,直接建立并且添加到字典最后.
(3)修改字典中的元素
for example:
dict={'name':'john','age':'22','address':'北京'}
dict['name']='Mary'
print(dict)
dict['phone_name']='1234567'
print(dict)
程序运行结果:
{‘name’: ‘Mary’, ‘age’: ‘22’, ‘address’: ‘北京’}
{‘name’: ‘Mary’, ‘age’: ‘22’, ‘address’: ‘北京’, ‘phone_name’: ‘1234567’}
变量名[“key”]=数据时,如果键值存在,则会改变原来的值,否则则会自动创建并且放在字典最后.
(4)删除字典中的元素
①del dict[key]
for example:
dict={'name':'john','age':'22','address':'北京'}
del dict['name']
print(dict)
程序运行结果:
{‘age’: ‘22’, ‘address’: ‘北京’}
在字典中用del来删除指定元素
②clear()
for example:
dict={'name':'john','age':'22','address':'北京'}
dict.clear()
print(dict)
程序运行结果:
{}
在字典中clear用来清空字典
③pop(key)
for example:
dict={'name':'john','age':'22','address':'北京'}
dict.pop('name')
print(dict)
程序运行结果:
{‘age’: ‘22’, ‘address’: ‘北京’}
在字典中用pop(key)来删除指定键值的数据
(5)字典中的常用函数
for example:
dict={'name':'john','age':'22','address':'北京'}
print('该字典的长度为:',len(dict))
print('该字典的键集合为:',dict.keys())
print('该字典的键集合为:',dict.values())
print('该字典的键值对集合为:',dict.items())
程序运行的结果:
该字典的长度为: 3
该字典的键集合为: dict_keys([‘name’, ‘age’, ‘address’])
该字典的键集合为: dict_values([‘john’, ‘22’, ‘北京’])
该字典的键值对集合为: dict_items([(‘name’, ‘john’), (‘age’, ‘22’), (‘address’, ‘北京’)])
len(字典名)用来求字典的长度;dict.keys()用来求字典的所键;dict.values()用来求字典的所有值;dict.items()用来求字典所有的键值对.
(6)字典的遍历
①遍历字典中所有的键
for example:
dict={'name':'john','age':'22','address':'北京'}
key=dict.keys()
for key1 in key:
print(key1)
程序运行结果:
name
age
address
②遍历字典中所有的值
for example:
dict={'name':'john','age':'22','address':'北京'}
values=dict.values()
for values1 in values:
print(values1)
程序运行的结果:
john
22
北京
③遍历字典中所有的键值对
for example:
dict={'name':'john','age':'22','address':'北京'}
items=dict.items()
for items1 in items:
print(items1)
程序运行的结果:
(‘name’, ‘john’)
(‘age’, ‘22’)
(‘address’, ‘北京’)
④遍历字典中的键值对(改进版)
for example:
dict={'name':'john','age':'22','address':'北京'}
items=dict.items()
for keys,values in items:
print('keys=%s,values=%s'%(keys,values))
程序运行结果:
keys=name,values=john
keys=age,values=22
keys=address,values=北京
字典与列表的优缺点比较
- 优点
- 字典查找和插入的速度较快,不会随着key-value的增加而变慢
- 列表需要从头遍历,列表的顺序变化后查找参数也要改变
- 缺点
- 字典需要占用较大的内存
- 列表结构比较简单,占用内存比较小