Day1:变量、运算符与数据类型
Day2:条件与循环
Day3&4:列表与元组
Day5:字符串与序列
Day6&7:函数与Lambda表达式
Day8:字典与集合——>本文
Day9&10:文件与文件系统
Day11:异常处理
Day12:else 与 with 语句
Day13&14:类与对象
Day15&16:魔法方法
Day17:模块
Python内置了字典:dict
dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中
dscore={'Mike':92,'Mary':95,'Jack':98,'Kate':90}
print(dscore['Mary'])
#95
print(dscore.get('Jack'))
#98
dscore['Jessi']=96
print(dscore)
#{'Mike':92,'Mary':95,'Jack':98,'Kate':90,'Jessi':96}
dscore={'Mike':92,'Mary':95,'Jack':98,'Kate':90}
dscore['Mary']=100
print(dscore['Mary'])
dscore={'Mike':92,'Mary':95,'Jack':98,'Kate':90}
del dscore['Mike']
print(dscore)
#{'Mary': 95, 'Jack': 98, 'Kate': 90}
del dscore
print (dscore)
#NameError: name 'dscore' is not defined
dscore={'Mike':92,'Mary':95,'Jack':98,'Kate':90}
dscore.pop('Mike')
print(dscore)
#{'Mary': 95, 'Jack': 98, 'Kate': 90}
dscore={'Mike':92,'Mary':95,'Jack':98,'Kate':90}
dscore.popitem()
print(dscore)
#{'Mike': 92, 'Mary': 95, 'Jack': 98}
dscore={'Mike':92,'Mary':95,'Jack':98,'Kate':90}
dscore.clear()
print(dscore)
#{}
dscore={'Mike':92,'Mary':95,'Jack':98,'Kate':90}
print('Jessi' in dscore)
#False
print(dscore.get('Jessi'))
#None
print(dscore.get('Thomas','notfind'))
#notfind
dscore={'Mike':92,'Mary':95,'Jack':98,'Kate':90}
print(len(dscore),str(dscore))
#4 {'Mike': 92, 'Mary': 95, 'Jack': 98, 'Kate': 90}
dscore={'Mike':92,'Mary':95,'Jack':98,'Kate':90}
dscore2={'Jessi':96,'Thomas':95}
dscore.update(dscore2)
print (dscore)
#{'Mike': 92, 'Mary': 95, 'Jack': 98, 'Kate': 90, 'Jessi': 96, 'Thomas': 95}
总的来说,dict是牺牲空间来换取时间的一种方法。
set和dict类似,也是一组key的集合,但不存储value
由于key不能重复,所以,在set中,没有重复的key
要创建一个set,需要提供一个list作为输入集合
当然,重复元素在set的初始化中自动被过滤
myset=set([4,2,3,1,1])
print(myset)
#{1, 2, 3, 4}
'''
虽然输出的是看起来有序的{1,2,3,4}
但只是告诉你这个set内部有1,2,3,4这4个元素
不表示set的内部是有序的
'''
myset=set([4,3,2,1,1])
myset.add(5)
print(myset)
#{1, 2, 3, 4, 5}
myset.update({6,7})
myset.update([-1,0],[-2,9])
print(myset)
#{0, 1, 2, 3, 4, 5, 6, 7, 9, -2, -1}
myset=set([4,3,2,1])
myset.remove(4)
print(myset)
#{1, 2, 3}
myset.discard(3)
print(myset)
#{1, 2}
myset=set([4,3,2,6])
myset.pop()
print(myset)
#{3, 4, 6}
set可以看成数学意义上的无序和无重复元素的集合
因此,两个set可以做数学意义上的交集、并集等操作
set1=set('hello')
set2=set('hi')
print(set1 & set2) #交集
#{'h'}
print(set1 | set2) #并集
#{'h', 'e', 'o', 'i', 'l'}
print(set1 - set2) #set1关于set2的补集
#{'e', 'o', 'l'}
print(set1 ^ set2) #并集去掉交集
#{'e', 'o', 'i', 'l'}
myset=set([4,3,2,6])
print(len(myset))
#4
myset=set([4,3,2,6])
myset.clear()
print(myset)
#set()