Python基础学习简记–字典与集合(Day8)
1、字典
字典Dictionary是python中一个非常重要的数据类型,首先,字典是一个键值对形式的、映射型的数据类型,同时它是一种可变数据类型,字典通过键查找值,具有极快的查找速度。
-
字典定义
字典的每个键值对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,如下:d = {key1 : value1, key2 : value2 }
字典的键具有唯一性,而且必须为不可变类型,所以可以用数字,字符串或元组充当,而用列表就不行。
字典的值可以是任意数据类型。 -
创建字典的几个方式
dict1 = {} dict2 = dict() dict3 = {"a":"学习","b":"强国"} dict4 = dict(a=1,b=2,c=3) dict5 = dict([('苹果', 'apple'), ('梨','peach' ), ('香蕉', 'banana')]) dict6 = dict((('苹果', 'apple'), ('梨','peach' ), ('香蕉', 'banana')))
字典内部是无序的,对同一个key赋值,后面的值会把前面的值覆盖掉,每个key只能有一个value,但不同的key可以有相同的值。
-
访问
字典的访问是通过调用key得到对应value,可以对字典中的键进行重新赋值,或在字典中添加新的键值对。当然也可以使用del语句删除特定的键值对。d = {'小明': 20, '小张': 22, '小李': 18} print(d['小明']) #20 d['小张'] = 21 print(d) #{'小明': 20, '小张': 21, '小李': 18} d['小刘'] = 24 print(d) #{'小明': 20, '小张': 21, '小李': 18, '小刘': 24}
-
内置方法
len(dict):计算字典元素个数,即键的总数。
str(dict):输出字典,以可打印的字符串表示。
type(variable):返回输入的变量类型,如果变量是字典就返回字典类型。
dict.clear():删除字典内所有元素
dict.copy():返回一个字典的浅复制
dict.fromkeys():创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
dict.get(key, default=None):返回指定键的值,如果值不在字典中返回default值
key in dict:如果键在字典dict里返回true,否则返回false
dict.items():以列表返回可遍历的(键, 值) 元组数组
dict.keys():返回一个迭代器,可以使用 list() 来转换为列表
dict.setdefault(key, default=None):和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
dict.update(dict2):把字典dict2的键/值对更新到dict里
dict.values():返回一个迭代器,可以使用 list() 来转换为列表
pop(key[,default]):删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
popitem():随机返回并删除字典中的最后一对键和值。
2、集合
与dict类似,set也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
-
集合定义
集合(set)是一个无序的不重复元素序列。 -
创建访问
可以使用大括号 { } 或者 set() 函数创建集合。
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
集合的无序性,使得我们无法通过索引来访问,但是可以使用for把集合中的数据依次读取出来,也可以判断一个元素是否在集合中。set1 = {value1,value2,...} set2 = set() set3 = {'n','c','e','p','u'} for s in set3: print(s) #p #c #u #n #e print('n' in set3) #True
-
内置方法
s.add( x ) :将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。
s.update( x ):添加元素,且参数可以是列表,元组,字典等,x 可以有多个,用逗号分开。
s.remove( x ):将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
s.discard( x ):移除集合中的元素,且如果元素不存在,不会发生错误。
s.pop(): 随机删除集合中的一个元素。
len(s):计算集合 s 元素个数。
s.clear():清空集合 s。
x in s:判断元素 x 是否在集合 s 中,存在返回 True,不存在返回 False。 -
不可变集合
frozenset([iterable]) 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。s = frozenset('ncepu') print(s) #frozenset({'n', 'u', 'e', 'p', 'c'})
3、参考文献
https://www.runoob.com/python3/python3-dictionary.html
https://mp.weixin.qq.com/s/FSmKS7IxJoUVis6qucB3BQ