廖雪峰 | 2.5 字典(dict)与集合(set)

2022-04-12  本文已影响0人  苦哈哈的柠檬水

dict

1,字典(dict)定义
dict,全称dictionary,是由key-value 键值对组成的,可变的,无序的,key不重复的数据集合。在其他语言中也称为map,具有极快的查找速度。
2,dictlist
问:如何实现,根据同学的名字查找对应的成绩
(1)list实现,以位置为媒介

>>> names = ['Michael', 'Bob', 'Tracy']
>>> scores = [95, 75, 85]
>>> names.index('Bob')
1
>>> scores[1]
75

(2)dict实现

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
>>>d['Adam'] = 67
>>>d
{'Michael': 95, 'Bob': 75, 'Tracy': 85, 'Adam': 67}
>>> d['Jack'] = 90
>>> d['Jack']
90
>>> d['Jack'] = 88
>>> d['Jack']
88
>>> d.pop('Bob')
75
>>> d
{'Michael': 95, 'Tracy': 85, 'Adam': 67, 'Jack': 88}
>>> 'Thomas' in d
False
>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1

(3)dictlist比较

3,注意

哈希算法(Hash)又称摘要算法(Digest),它的作用是:对任意一组输入数据进行计算,得到一个固定长度的输出摘要。

set

1,集合(set)定义
set是由一组key值组成,可变的,无序的,无重复元素的可迭代集合。可以看成数学意义上的无序和无重复元素的集合。
2,set的创建与修改

>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.remove(4)
>>> s
{1, 2, 3}
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}

3,可变对象与不可变对象
strtuple是不可变对象,而list是可变对象

>>> a = 'abc'
>>> a.replace('a', 'A')
'Abc'
>>> a
'abc'
>>> a = 'abc'
>>> b = a.replace('a', 'A')
>>> b
'Abc'
>>> a
'abc'

如上,不可变对象a、bstr,改变值后相当于赋值给新变量。

>>> a = ['c', 'b', 'a']
>>> a.sort()
>>> a
['a', 'b', 'c']

如上,可变变量a,其值是可以被修改

上一篇下一篇

猜你喜欢

热点阅读