廖老师 python_跟着廖老师学Python(10):Python基础6 - dict 和 set

续:第(9)节

本文所有引用均来自廖雪峰老师的网站。转载请说明出处。

8. dict

dict 全称为dictionary,其他语言中也称为map,使用key-value对存储,具有极快的查找速度。

例如:

>>> d = { 'A' : 95, 'B' : 90, 'C' : 97}

>>> d['A']

95

注意:d

dict定义时可以赋值,也可以只声明不赋值:

d = {}

classmates = {}

注意括号的种类。dict定义时使用的是花括号{},在取值时用的是[],而谈到小括号(),则是在之前所谈的tuple中有用到。

可以使用d['A']进行取值,使用d['A'] = 98进行重新赋值。

如何查询某个key是否在dictionary中?

法1:通过in方法:

>>> 'D' in d

False

法2:get方法:

>>>d.get('A', x)

or

>>>d.get('A')

返回结果是:若存在这个key,则返回其对应的value值。若不存在,则返回x这个值。如果不写x这个参数,则返回None值,而这个None值是不会在终端中显示出来的。

6608582783e5

例子-源代码

6608582783e5

运行结果

注意:

· dict内部存放的顺序和key放入的顺序是没有关系的

· dict是用空间来换取时间的一种方法

· dict的key必须是不可变对象。因为计算value的存储位置是通对key值进行hash而得到的。

8. set

set和dict类似,也是一组key的集合,但不存储value。

由于key不能重复,所以,在set中,没有重复的key。

要创建一个set,需要提供一个list作为输入集合。

例如:

>>> s = set ( [2, 1, 3] )

>>>s

{1, 2, 3}

注意:传入的参数[1, 2, 3]是一个list,而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。

set可以看成是数学上的集合,所以可以进行交集、并集等操作。

6608582783e5

set例子-源代码

6608582783e5

运行结果

set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”。试试把list放入set,看看是否会报错。

补充:不可变对象

对于不变对象(例如字符串、整数、tuple等)来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。

list是可变对象,可以通过sort()方法进行内部对象的排序整理。

有一个replace方法可以将字符串中的一个字母全部替换成另一个字母。

总结:

dict和set中key的类型必须是不可变的。因为它要用于hash来得到value的存储位置。

end of Python 基础 -

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值