python中的字典类似于C++中的map,用于存储键值对,且无序,它在python中的类型为“dict”,根据这些特点就可以总结出字典的一些特性。
一、字典的特性
1.由于无序,所以字典不支持索引访问;
2.由于len()方法是python中的内置函数,所以字典也支持len()方法;
3.字典的键不允许重复,重复时会当做更新操作而不是插入操作,只会保留新值,这些结论会在下面使用代码来验证;
4.字典的键只能使用不可变数据类型,所以诸如列表list这种数据类型是不可以作为字典的键的
二、字典支持的方法
以下代码均在批处理模式下运行
1.首先建立一个字典:
dic={"优快云":23,"PLQP":34}
#创建了一个名为dic的字典
python建立字典使用的是{},注意不要和元组tuple、列表list的符号弄混了;他的键和值中间需要使用冒号分隔开,这样我们就创建好了一个字典。
2.对字典的访问
(1)访问指定键对应的值:
print(dic["优快云"])
#或者
print(dic.get("优快云"))
运行结果为:
注意若对一个不存在的键使用get()方法时则会返回None
(2)输出所有的值
print(dic.values())
#则会输出:dict_values([23, 34])
(3)输出所有的键
print(dic.keys())
#则会输出:dict_keys(['优快云', 'PLQP'])
(4)遍历所有键值对
dic.items()#遍历键值对
#则会输出:dict_items([('优快云', 23), ('PLQP', 34)])
3.查看指定元素是否在字典中:使用in运算符
print(34 in dic.values())#检验元素是否在指定集合中
print(34 not in dic.values())#检验元素是否在指定集合中
'''
分别输出为:
True
False
'''
同样也可以使用in运算符检验key的存在与否
4.随机返回一个键值对:
print(dic.popitem())
'''
运行结果为:
('PLQP', 34)
'''
注意此处他的返回值类型为元组类型,不可改变;
5.使用循环对字典键和值以及键值对遍历
python中的for循环需要一个集合,而字典中的键、值和键值对都是一个集合,所以就有对应以下三种方式来遍历字典的元素:
#对键进行遍历
for i in dic.keys():
print(i)
#对值进行遍历
for i in dic.values():
print(i)
#对键值对进行遍历
for i in dic.items():
print(i)
以上的方法输出结果为:
6.对字典元素的更改
(1)对指定元素进行更新,然后遍历查看:
dic={"优快云":23,"PLQP":34}
dic.update({"优快云":22})
for i in dic.items():
print(i)
'''
运行结果为:
('优快云', 22)
('PLQP', 34)
'''
可以看到已经对键“优快云”的值进行了更改
(2)删除指定key对应的元素再遍历查看:
dic={"优快云":23,"PLQP":34}
print(dic.pop("优快云"))#根据键删除值
for i in dic.items():
print(i)
'''
运行结果为:
23
('PLQP', 34)
'''
(3)清除字典中的所有元素:
dic={"优快云":23,"PLQP":34}
#对键值对进行遍历
for i in dic.items():
print(i)
dic.clear()#清除dic
#对键值对进行遍历
for i in dic.items():
print(i)
'''
运行结果为:
('优快云', 23)
('PLQP', 34)
'''
第一次遍历后清除,第二次遍历则没有元素输出
(4)给字典添加使用默认值的键值对:
dic={"优快云":23,"PLQP":34}
dic.setdefault("WZRY")
for i in dic.items():
print(i)
'''
输出结果为:
('优快云', 23)
('PLQP', 34)
('WZRY', None)
'''
7.其他方法
(1)创建一个含有默认值的字典
dic1=dict.fromkeys(["hg","ll"],100)
for i in dic1.items():
print(i)
'''
运行结果为:
('hg', 100)
('ll', 100)
'''
(2)复制当前字典
dic2=dic.copy()#复制字典
对dic和dic2进行遍历,它们的元素是一样的
三、在这给大家提供整体的代码可以试一试
dic={"优快云":23,"PLQP":34}
print(dic["优快云"])
#根据键获取对应的值
print(dic.get("优快云"))
print(dic.get(23))
print(dic.values())#显示字典的值
print(dic.keys())#显示字典的键
print(dic.popitem())#随机返回一组键值对,返回值是元组类型
print(dic.items())#遍历键值对
print(34 in dic.values())#检验元素是否在指定集合中
print(34 not in dic.values())#检验元素是否在指定集合中
dic.update({"优快云":22})#字典的更新
print(dic.pop("优快云"))#根据键删除值
dic1=dict.fromkeys(["hg","ll"],100)#快速创建字典
dic.clear()#清除dic
dic2=dic.copy()#复制字典
dic.setdefault("WZRY")#给字典添加使用默认值的元素
#对键进行遍历
for i in dic.keys():
print(i)
#对值进行遍历
for i in dic.values():
print(i)
#对键值对进行遍历
for i in dic.items():
print(i)
python新手,有误请大家指正。