Python 基础(七):字典与集合

简介: Python字典与集合

1 字典

1.1 简介

当看到字典这个词时,有些人包括我自己在内,首先映入眼帘的便是新华字典

image.png

我清楚的记得,刚上小学时老师就让每一个学生准备一本新华字典,它的使用大家也应该都清楚,通过拼音、偏旁部首等进行查询;今天我们说的字典(dict)是 Python 的数据结构,因为都叫字典,我们不用想也知道它们是十分相似的,它们的内容都是以键-值(key-value)的方式存在的。

dict 拥有良好的查询速度,dict 中的值可以是任意 Python 对象,多次对一个 key 赋 value,后面的 value 会把前面的 value 覆盖。

1.2 使用

字典的内容在花括号 {} 内,键-值(key-value)之间用冒号 : 分隔,键值对之间用逗号 , 分隔,比如创建字典 d,如下所示:

d = {
   'name':'小明', 'age':'18'}

# 使用 dict 函数
# 方式一
l = [('name', '小明'), ('age', 18)]
d = dict(l)
# 方式二
d = dict(name='小明', age='18')

# 空字典
d = dict()
d = {
   }

字典中的值通过 key 进行访问,如下所示:

>>> d = dict(name='小明', age='18')
>>> d['name']
'小明'

# 使用 get 方法
>>> d.get('name')
'小明'

修改操作,以修改 age 为例,如下所示:

>>> d = dict(name='小明', age='18')
>>> d['age'] = '20'
>>> d['age']
'20'

清空集合,如下所示:

>>> d = dict(name='小明', age='18')
>>> d.clear()
>>> d
{
   }

获取字典的长度,如下所示:

>>> d = dict(name='小明', age='18')
>>> len(d)
2

2 集合

2.1 简介

集合(set)与字典相同均存储 key,但也只存储 key,因 key 不可重复,所以 set 的中的值不可重复,也是无序的。

2.2 使用

集合使用花括号 {} 或者 set() 函数创建,如果创建空集合只能使用 set() 函数,以创建集合 s 为例,如下所示:

s = {
   'a', 'b', 'c'}

# 使用 set 函数
s = set(['a', 'b', 'c'])

# 空集合
s = set()

集合中重复的元素会被自动过滤掉,如下所示:

>>> s = {
   'a', 'a', 'b', 'c', 'c'}
>>> s
{
   'a', 'c', 'b'}

添加元素可以使用 addupdate 方法,如果元素已经存在,则不进行操作,如下所示:

>>> s = {
   'a', 'b', 'c'}
>>> s.add('d')
>>> s
{
   'a', 'd', 'c', 'b'}
>>> s.update('e')
>>> s
{
   'a', 'b', 'e', 'd', 'c'}
# 添加已经存在的元素 a
>>> s.add('a')
>>> s
{
   'a', 'b', 'e', 'd', 'c'}

删除元素使用 remove 方法,如下所示:

>>> s = {
   'a', 'b', 'c'}
>>> s.remove('c')
>>> s
{
   'a', 'b'}

清空集合使用 clear 方法,如下所示:

>>> s = {
   'a', 'b', 'c'}
>>> s.clear()
>>> s
set()

获取集合的长度,同样使用 len 方法,如下所示:

>>> s = {
   'a', 'b', 'c'}
>>> len(s)
3
相关文章
|
1天前
|
Python
【Python操作基础】——字典,迭代器和生成器
【Python操作基础】——字典,迭代器和生成器
|
1天前
|
Python
【Python操作基础】——集合
【Python操作基础】——集合
|
1天前
|
索引 Python
Python中的列表、元组和字典各具特色
Python中的列表、元组和字典各具特色:列表是可变的,元组不可变,字典亦可变;列表和元组有序,字典无序(但在Python 3.7+保持插入顺序);元素类型上,列表和元组元素任意,字典需键不可变;列表用方括号[],元组用圆括号(),字典用大括号{}表示。列表不适合作字典键,元组可以。选择数据结构应依据实际需求。
7 2
|
3天前
|
开发者 Python
【Python 基础】递推式构造字典(dictionary comprehension)
【5月更文挑战第8天】【Python 基础】递推式构造字典(dictionary comprehension)
|
13天前
|
Python
Python中字典和集合(二)
Python中字典和集合(二)
|
13天前
|
存储 算法 索引
Python中字典和集合(一)
Python中字典和集合(一)
|
14天前
|
索引 Python
【Python21天学习挑战赛】集合 & 数据类型补充
【Python21天学习挑战赛】集合 & 数据类型补充
|
14天前
|
存储 缓存 Python
【Python21天学习挑战赛】字典 && 小数据池
【Python21天学习挑战赛】字典 && 小数据池
|
15天前
|
存储 JSON 数据处理
|
16天前
|
存储 缓存 人工智能
bidict,一个超酷的 Python 双向字典库!
bidict,一个超酷的 Python 双向字典库!
19 1