python字典和集合
一:字典:
1 dt = {'Jack':18,'Mike':19,128:37,(1,2):[4,5]}
2 print(dt['Jack'])#18
3 print(dt[128])#37
4 print(dt[(1,2)])#[4,5]
5 dt['Mike'] = 'ok'#把mike的键值改成ok
6 dt['school'] = 'JMU'
7 print(dt)#添加了键值为school的学校
8 del dt['Mike']#删除了键值是Mike的元素
9 print('b' in dt)#返回false
10 dt['Mike'] = dt.get('Mike',0)+1
11 #get函数是字典里面常用的函数,作用是返回字典
12 #键值是Mike的元素,否则的话不会返回false而是0
注意:字典的键不能重复!
首先字典可以由元组转化而成,刚好每一个元组都是一个对应的键值对。还有第二个是用等号转化。
二,字典相应的函数:
1 d = {'name': 'Gumby', 'age':42,'GPA':3.5}
2 if 'age' in d.keys():#这个是遍历键
3 print(d['age'])#通过键来访问值
4 for x in d.items():
5 print(x,end = "")#这个输出就是按照元组的方式输出键值对
6 #(‘GPA’,3.5),(),()
7 for x in d.items():
8 print(x[1],end = "")#这个其实就是打印上面元组里面的第二个
9
10 for k,v in d.items():
11 print(k,v,end = "")#k和v其实分别代表键和值
12 for x in d.keys():
13 print(x,end = "")#这个x其实就是键值
14 for x in d.value():#这个是遍历值
15 print(x,end = "")
16 y = d.copy()#这个就是浅拷贝
17 y.pop('Mike')#删除
18 d.clear()# 清除
1 dt = {}
2 while True:
3 try:
4 wd = input()
5 if wd in dt:
6 dt[wd]+=1
7 else:
8 dt[wd] = 1
9 except:
10 break
11 result = []
12 for x in dt.items():
13 result.append(x)
14 result.sort(key = lambda x:(-x[1],x[0]))
15 for x in result:
16 print(x[1],x[0])
三,set集合:
在判断一个东西是否在一堆东西里的时候,集合会比列表快速很多。
1 a = {1,2,2,"ok",(1,3)}
2 print(a)
3 b = (3,4)
4 c = (3,4)
5 a = set((1,2,"ok",2,b,c))#字典转化为set集合会自动去重
6 for x in a:
7 print(x,end = "")
8 a = set("abc")#字符串转化为集合
9 print(a)
10 a = set({1:2,'ok':3,(3,4):4})
11 print(a)#只取键
12 print(a[2])#set容器是一个无序的容器是不会自己排序的
四,集合常用函数与运算:
1 words = set([])
2 while True:
3 try:
4 wd = input()
5 if not wd in words:
6 words.add(wd)
7 except:
8 break;
9 print(len(words))