字典
Python中的字典把单词称为键,把单词对应的含义称为值,而字典称为关系数组。字典是Python唯一的一个映射类型。
创建和访问字典
>>>dict1={'李宁':'一切皆有可能','耐克':'Just do it','阿迪达斯':'Impossible is nothing','鱼C工作室':'让编程改变世界'}
>>>print('鱼C工作室的口号是:',dict1['鱼C工作室'])
鱼C工作室的口号是:让编程改变世界
字典有多个键和对应的值构成;其中在该例中,‘李宁’‘耐克’'阿迪达斯’等为键,‘一切皆有可能’'Just do it’为对应的值;字典的标志是大括号;每一对键值组合称为象;键的类型可以是整型,浮点型,字符串类型;也可以创建一个空字典。
>>>dict2={1:'one',2:'two',3:'thhree'}
>>>dict2[1]
'one'
还有其他创建字典的方式。
>>>dict3=dict((('F',70),('i',105),('s',115),('h',104),('C',67)))
>>>dict3
{'F':70,'i':105,'s':115,'h':104,'C':67}
>>>dict4=dict(小甲鱼='让编程改变世界',李宁='一切皆有可能')
>>>dict4
{'小甲鱼':'让编程改变世界','李宁':'一切皆有可能'}
注:dict()为一个工厂函数(类型)调用它会生成一个实例;类似的工厂函数有:list(),int(),str(),tuple()……
对字典添加或修改内容:
>>>dict4['小甲鱼']='你好世界'
>>>dict4
{'小甲鱼':'你好世界','李宁':'一切皆有可能'}
>>>dict['书有云']='盖有非凡之功,必待非常之人'
>>>dict4
{'小甲鱼':'你好世界','李宁':'一切皆有可能','书有云':'盖有非凡之功,必待非常之人'}
即若所写键在原来字典中没有时,会添加相应的键值进去。
相关函数
dict.fromkeys(S[,v])
作用:创建并返回一个新的字典。
参数:S字典的键值;v可选,键值对应的值,不提供时默认none。
>>>dict1={}
>>>dict1.fromkeys((1,2,3))
>>>dict1
{1:None,2:None,3:None}
>>>dict1.fromkeys((1,2,3),'number')
>>>dict1
{1:'number',2:'number',3:'number'}
注:该函数只能赋一个键值对应的值,而且不能对键值的值进行修改,只能新创建一个新的字典。
访问字典的方法
1.keys()
返回键的引用。
>>>dict1=dict1.fromkeys(range(2),'zan')
>>>dict1
{0:'zan',1:'zan'}
>>>for eachKey in dict1.keys():
print(eachKey)
0
1
2.values()
与上面类似:
>>>for eachValue in dict1.keys():
print(eachValue)
zan
zan
3.items()
将每一个象以元组形式打印出来:
>>>for eachItem in dict1.keys():
print(eachItem)
(0:'zan')
(1:'zan')
注意,若要求打印字典中的象时,
>>>print(dict1[1])
zan
4.dict.get()
若在字典中试图访问不存在的键时,用该函数可以返回一个None而非报错;若想返回一个具体的值时,可以有具体设置。
>>>dict1.get(2)#此时什么都不会返回
>>>print(dict1.get(2))
None
>>>dict1.get(2,'木有!')
'木有!'
>>>dict1.get(1,'木有!')
zan
如果不知道一个键是否在字典中可以用成员关系操作符in和not in:
>>>2 in dict1
False
>>>1 in dict1
True
注意,在字典中查找时查找的是键,而在序列中查找的是值。
5.dict.clear()
清空一个字典。
6.dict.copy()
拷贝。
7.dict.pop()
给一个键弹出对应的值。
8.dict.popitem()
给一个键弹出对应的象。
9.dict.setdefault()
同get()。
10.dict.update()
相当于对原来的键对应的值进行修改,一次只能修改一个。
>>>a={1:'one',2:'two'}
>>>b={2:'none'}
>>>a.update(b)
>>>a
{1:'one',2:'none'}
集合
在Python的大括号中如果只有键而没有体现出映射关系的时候,该括号称为集合;该集合符合数学中的无序性,唯一性。
创建集合
直接把元素用大括号括起来,或者使用set()工厂函数。
>>>set1=set([1,2,3,3])
>>>set1
{1,2,3}
练习:去除掉重复元素。
>>>num1=[1,2,3,3]
>>>num1=list(set(num1))
>>>num1
[1,2,3]
注意,用set()函数得到的是无序的,若想有序:
>>>temp=[]
>>>for each in num1:
if each not in temp:
temp.append(each)
>>>temp
[1,2,3]
如何访问集合中的值
1.可以使用for把集合中的数据一个个读取出来。
2.可以通过in和not in判断一个元素是否在集合中已经存在。
不可变集合
frozenset()
>>>num3=frozenset([1,2,3])
>>>num3.add(0)#此时会报错