字典和集合(一)

一. 初识字典

        字典一种可变的容器,可以存储任意类型的数据,数据以键(key)-值(value)对的形式进行映射存储。字典中的每个数据都是用“键”(key)进行索引的,而不像序列可以用下标进行索引,因此键不能重复,且只能用不可变类型作为字典的键。数据没有先后顺序关系,字典的存储是无序的。

1.1 表示方式  

        {} 括起来,以冒号(:)分隔键-值对,各个键-值用逗号分隔开

1.2 创建字典

  • 创建空字典:d = {}
  • 创建非空字典:d = {"name":"Alex","age":12}、d = {1:"星期一",2:"星期二"} 
  • 字典的构造函数:
dict() 创建空字典,等同于{}
dict(iterable) 用可迭代对象初始化一个字典。如:d = dict([('name', 'Alex'), ('age', 13)]),每个元组里面提供2个值,一个为键,一个为值。
dict(**kwargs) 关键字传参形式生成一个字典。如:d = dict(name='Alex',age=15),此方法中,键必须只能是字符串

1.3 添加/修改字典的元素

        使用“字典[键] = 值”的形式向字典中添加/修改元素;当键不存在时,创建键并绑定键对应的值,当键存在时,修改键绑定的对象。

1.4 删除字典的元素

        del语句用来删除字典的元素:del dict[key]

1.5 in/not in运算符

        判断一个“键”是否存在与字典中,如果存在则返回True,否则返回False

1.6 字典的迭代访问

        字典是可迭代对象,直接遍历字典时得到的是字典的键。可以使用索引间接访问值(遍历时切勿去同时修改字典的值,后续篇幅会详细说明)。

二. 字典常用函数及方法

关于字典相关函数的使用总结如下

函数 说明
len(x) 返回键值对的个数
max(x) 返回‘’键‘’的最大值
min(x) 返回‘’键‘’的最小值
sum(x) 返回‘’键‘’的和
any(x)  真值测试,如果字典中一个‘’键‘’为真,则结果为真
all(x) 真值测试,字典中所有‘’键‘’为真,则结果才为真

关于字典相关方法的使用总结如下

方法 说明
D.clear() 清空字典
D.copy() 返回字典D的副本,只复制一层(浅拷贝)
D.get(k[,d]) 返回键key对应的值,如果没有此键,则返回default
D.items()

返回键值对组成的可迭代对象;

如:d = {1:"one", 2:"two","three":3},d.items()返回值为dict_items([(1, 'one'), (2, 'two'), ('three', 3)])

D.keys()

返回字典的键;

d = {1:"one", 2:"two","three":3},d.keys()返回值为dict_keys([1, 2, 'three'])

D.values()

返回字典的值;

d = {1:"one", 2:"two","three":3},d.values()返回值为dict_values(['one', 'two', 3])

D.pop(k[d]) 移除键,同时返回此键对应的值;
D.update(D2) 更新字典;如果key值重复,则更新为D2中的值

三. 字典和列表的比较

  1. 都是可变对象;
  2. 索引方式不同,列表用整数索引,字典用键索引;
  3. 列表的存储是有序的,字典的存储是无序的:
  4. 列表:顺序存储,append()很快,但insert()很慢;
  5. 字典:映射存储,插入的速度很快。
发布了132 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Geroge_lmx/article/details/105098060
今日推荐