一. dict
-
dict全称dictionary,类似于java中的map,使用键-值(key-value)存储,优点是速度极快,缺点是消耗内存。
-
从Python3.6开始,dict的插入变为有序
-
除了初始化时将数据赋予dict外,还可以直接通过key放入
-
一个key只能对应一个value,重复的key会替换之前的value值
-
如果key不存在,dict就会报错,可以通过in或者get方法判断key是否存在
-
pop(key):删除指定key
-
dict的key必须是不可变对象
names = {'zhangjia':24,'zhangyi':24} # 通过key赋值 names['zhangjie'] = 31 # key不重复,重复值key会替换 names['zhangjie'] = 32 print(names) #{'zhangjia': 24, 'zhangyi': 24, 'zhangjie': 32} print(names['zhangjia']) #24 #不存在的key会报错 # print(names['xiaoming']) KeyError: 'xiaoming' #判断key是否存在 print('xiaoming' in names) #False print(names.get('xiaoming')) #None print(names.get('xiaoming','该key不存在')) #该key不存在 if(not 'xiaoming' in names): names['xiaoming'] = 88 print(names) #{'zhangjia': 24, 'zhangyi': 24, 'zhangjie': 32, 'xiaoming': 88} #删除key names.pop('xiaoming') print(names) #{'zhangjia': 24, 'zhangyi': 24, 'zhangjie': 32}
二. set
-
set可以看做是没有value的dict,所以set的重复元素会被自动被过滤
-
set是无序的,两个set可以做数学意义上的交集、并集等操作
-
add(key):添加元素
-
remove(key):删除元素
-
set中的元素必须是不可变对象
# 创建一个set,需要提供一个list作为输入集合 s = set([1, 1, 2, 2, 3, 3]) # 重复元素会被自动过滤 print(s) # {1, 2, 3} # 添加元素 s.add(4) print(s) # {1, 2, 3, 4} # 删除元素 s.remove(3) print(s) # {1, 2, 4} # 交集、并集 h = set([4, 5, 6, 7]) print(s & h) #{4} print(s | h) #{1, 2, 4, 5, 6, 7}
三. 不可变对象
-
str是不变对象,而list是可变对象
-
对于可变对象,调用对象自身的方法,会改变对象自身的内容
-
对于不变对象来说,调用对象自身的任意方法,不会改变该对象自身的内容,但是会创建新的对象并返回
a = ['c', 'b', 'a'] a.sort(); print(a) #['a', 'b', 'c'] a = 'abc' a.replace('a','A') print(a) #abc a = a.replace('a','A') print(a) #Abc
请登录之后再进行评论