Python:字典结构与集合

1.字典的基本知识

定义:字典(Dict),是可变的无序集合,同时是一种以键值对为基本元素的可以存储各种数据类型的集合,用大括号({ })表示字典的开始和结束,元素之间用逗号分隔
键值对:由键(Key)和值(Value)组成,中间用冒号(:)分隔。
如“tom:29”的键为tom,对应的值为29.采用键值对,可以更加独立而紧密地表示两者之间的关系。可以看出,字典属于典型的一一映射关系的数据类型。

>>> {}
{}
>>> d1={'tom':29}
>>> len(d1)
1
>>> d2={1:'car',2:'dog'}
>>> len(d2)
2

字典的键,值设计要求
(1)键的要求设计:
唯一性:一个字典对象里所有的键必须唯一(相同键值的元素保留最后一个)
不可变性:字典在使用过程中明确,不能对元素的键进行直接修改(不能接受可以修改的列表对象作为键被使用)
(2)值的设置要求:
Python语言支持的任何对象

字典的基本方法
在这里插入图片描述

注意 :字典内部结构由哈希表构成,通过唯一的键访问对应的值,所以字典对象没有提供排序功能,字典数据类型是无序的,这是与列表和元组的一个明显区别。

字典元素的增加
(1)利用赋值给字典增加元素


>>> d1={'Tom':19,'Jame':18}
>>> d1['Mike']=8
>>> print(d1)
{'Tom': 19, 'Jame': 18, 'Mike': 8}

可以看出,给字典新增加值的样式为:字典名[新键值名]=键值
注意:若字典里已经有新增加的键值,那么将会改变指定键的值

列表变量和字典变量中带中括号的区别
(1)列表通过L[x]=value的方法,修改对应的元素,x为指定的下标
(2)字典通过D[k]=value的方法,为字典增加新元素或者改变键值

(2)利用setdefault()方法给字典增加元素
使用格式为:D.setfault(k,d),D代表字典对象,k代表新键,d代表新增键对应的值。若指定键已经存在,则显示已经存在键的值。

字典值查找
(1)字典名+[Key]查找

>>> d2={'red':1,'blue':2,'yellow':3}
>>> print(d2['red'])
1

(2)利用get()方法查找
使用格式为D.get(键),例如:

>>> d2={'red':1,'blue':2,'yellow':3}
>>> d2.get('red')
1

这两种方法的区别在于:若键值不存在,第一种方法会返回错误代码提示,第二种方法则返回空值

字典值修改
(1)利用赋值修改键对应值

>>> d2={'red':1,'blue':2,'yellow':3}
>>> d2['green']=4
>>> print(d2)
{'red': 1, 'blue': 2, 'yellow': 3, 'green': 4}

上述操作要求,在字典对象里确保存在要修改的键,否则变成了增加新的键值对。
(2)利用update()方法修改键对应值
更新字典里对应值

>>> d2={'red':1,'blue':2,'yellow':3}
>>> d3={'red':5,'blue':4}
>>> d2.update(d3)
>>> d2
{'red': 5, 'blue': 4, 'yellow': 3}

新增键值对


>>> d2={'red':1,'blue':2,'yellow':3}
>>> d2.update({'green':4})
>>> d2
{'red': 1, 'blue': 2, 'yellow': 3, 'green': 4}

在Python语言里有不少对象的方法,存在两种操作状态。例如,update()既可以实现对字典有键的值的更新,又可以实现对字典新元素的的增加;satfault()方法既可以实现对字典新元素的增加,又可以对现有元素值的显示作用。

字典元素删除

1.利用del函数删除

>>> d2={'red':1,'blue':2,'yellow':3}
>>> del(d2['red'])
>>> d2
{'blue': 2, 'yellow': 3}

2.利用pop()方法删除
使用格式时D.pop(k)。其中,D代表字典对象,k为需要删除的元素n的键。

3.利用popitem()方法删除
使用格式为D.popitem()。D代表字典对象,随机返回一个键值对元组,并在字典里删除对应的元组

>>> d2={'red':1,'blue':2,'yellow':3}
>>> k1,v1=d2.popitem()
>>> k1,v1
('yellow', 3)
>>> d2
{'red': 1, 'blue': 2}

字典遍历操作
1.遍历所有键值对
利用items()方法遍历所有键值对

>>> d2={'red':1,'blue':2,'yellow':3}
>>> for get_L in d2.items():
	print(get_L)

	
('red', 1)
('blue', 2)
('yellow', 3)

2.遍历所有键
(1)直接遍历

>>> d2={'red':1,'blue':2,'yellow':3}
>>> for get_L in d2:
	print(get_L)

	
red
blue
yellow

(2)函数遍历

>>> d2={'red':1,'blue':2,'yellow':3}
>>> for get_L in d2.keys():
	print(get_L)

	
red
blue
yellow

3,遍历所有值
(1)通过键值遍历

>>> d2={'red':1,'blue':2,'yellow':3}
>>> for get_L in d2:
	print(d2[get_L])

	
1
2
3

(2)利用values()方法获取字典

>>> d2={'red':1,'blue':2,'yellow':3}
>>> for get_L in d2.values():
	print(get_L)

	
1
2
3

字典的其他操作方法

1.in成员操作:判断某个键是否在字典内
2.clear()方法:清空字典
3.copy()方法:可以避免字典变量之间直接赋值指向同一地址的问题。

集合

有关集合知识的整理请参考如下网址:
Python集合知识详解

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值