学廖雪峰老师的python教程笔记。
1、字典dictionary 无顺序 key的对象不可变(字符串str,数字,元祖,不能是list)
主要特点:查找速度快 ex.想要查找某人的成绩。key-value存储方式:有索引key,快速查出对应值。
d = {'Lisa' : 18, 'Jennie' : 19, 'Rose' : 19}
d['Jennie' ]
19
d['Jack'] =90 添加信息 / 对key对应value值更新
del dict['Name'] # 删除键 'Name'
dict.clear() # 清空字典
del dict # 删除字典
由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉。
对字典某key的value操作,要先判断该key是否存在。
(1) ‘Jisoo’ in d
False 则表示不存在
(2)get()用法
>>> d.get('Thomas') # 无返回none值
>>> d.get('Thomas', -1) #无,则返回指定value值
-1
2、set
set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上集合运算的交集 | 、并集 & 等操作
只有key,无对应value值。key是不可变对象
s = set([1, 2, 3]) # 创建一个set,提供一个list作为输入集合 d= { } 创建一个空字典
输入s 返回 {1, 2, 3}
s.add(4) s.remove(4) 添加删除元素
3、list,set,tuple,dic比较
list和tuple都是有序的,可以通过索引下边读取其value
set和dic都是无序的,通过key读取
严格意义上,只有list能变,可删除、任意添加、替换。tuple定死,其中元素无法改变。
set和dic 必须是已有key存在,才能去读其value值。key的对象不可变(str,int 注list可变)
>>> a ='abc'
>>> a.replace('a','A') 创建了一个新字符并返回,但是a这个字符串仍未改变。
'Abc'
>>> a
'abc'
4、s =set([1,2,3])
s.add((1, [2,3]))
print(s)
#运行出错 说不允许的类型 输入元组(1,2,3)作为key值可以,但是含列表的元组不可。 dic中alike
d = {(1,2,3):12}
print(d[(1,2,3)])