Python内置了字典:dict的支持,dict全称dictionary;
表达式为dict{key,value} 使用键值对来存储数据
eg: 使用dict来存储姓名和分数
d = {'bob':20,'lisa':80,'tom':90}>>>d {'bob':20,'lisa':80,'tom':90}dict的查找速度比list快,dict叫做字典,从名称上就能看出来,就行我们查字典,以关键词查找;
而list的每个元素都要遍历一遍才能查找到自己想要的数据
如何访问key得到value?
查找的key不存在的时候,会报错keyerror
>>>d['bob']20>>>d['mm'].........keyerror要避免keyerror,可以先判断key是否存在,还有dict提供的get()方法
>>>'bob' in dTure>>>'jeny' in dFalse#dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:>>>d.get('bob')20>>>d.get('lili') #不存在,返回None#返回自己指定的错误返回值>>>d.get('lili',5)5
如何在dict中插入键值对?
d = {'bob':20,'lisa':80,'tom':90}#通过key插入d['jerry'] = 65>>>d {'bob':20,'lisa':80,'tom':90,'jerry':65}当插入的键重复后,前者的value会被覆盖,python是动态语言,变量也是如此,后者覆盖前者。
要删除一个key,用pop(key)方法,对应的value也会从dict中删除:
d = {'bob':20,'lisa':80,'tom':90} >>>d.pop('bob')20>>>d['lisa':80,'tom':90]使用for循环遍历dict。
items()方法,以列表返回可遍历的(键, 值) 元组数组。
d = {'score':80,'name':'jess','class':2} #只拿出key for k in d: print(k)score name class#只拿出value,使用方法d.values()for y in d.values(): print(y)80jess2#同时拿出key和valuefor k,v in d.items(): print(k,v)score 80name jessclass 2
set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key.
写法为:set = ([x,y,z]) 内含一个list作为输入集,写法看起来就像tuple内包含了一个list
如果set()内包含了重复的元素,set会自动剔除掉
s = ([1, 2, 3,3])>>>s[1,2,3]add()方法添加元素到set内,remove()方法进行删除。
add()(待定,使用add方法添加时报错,list不存在add()方法,IDE会提示append()方法,可以正常添加)
insert()方法同list操作,正常。
s = ([1,2,3])#>>>s.add(4)#>>>s#[1,2,3,4]>>>s.remove(2)>>>s[1,3,4]
set的其他方法如下:
clear()清空set所有元素
name = set(['Tom','Lucy','Ben']) name.clear() print(name) #输出:set()
copy()复制set到另一个set
name = set(['Tom','Lucy','Ben']) new_name = name.copy() print(new_name) #输出:{'Tom', 'Lucy', 'Ben'}difference()比较两个或者多个set,剔除重复元素,只要两者之间有重复,就删除。
n1 = set([2,3,4,5]) n2 = set([3,4]) n3 = set([2]) n = n1.difference(n2,n3) print(n) #输出:{5} #返回A集合里面,在B和C集合中没有的元素,并生成新的集合difference_update(删除A集合里面,在B集合中存在的元素。)
A = set([2,3,4,5]) B = set([4,5]) A.difference_update(B) print(A) #输出:{2, 3}##########discard(移除元素) shell里面也没有提示这个,所以暂时不要使用, 用remove()就行
n = set([2,3,4]) n.discard(3) print(n) #输出:{2, 4}pop()随机删除一个元素。
s = ([1,2,3,4,5])>>>s.pop()5sort()正序排序
s = ([2,9,8,6]) >>>s.sort() [2,6,8,9]
reverse()倒序排序
s = ([1,2,3,4,5]) >>>s.reverse() [5,4,3,2,1]目前shell就提示这么多,改动的话再编辑。
转载于:https://www.cnblogs.com/mzc1997/p/7597519.html