Pyhon学习_04_字典、集合

时间:2021-05-15 21:55:03

字典、集合两种基本类型都是通过映射的方式访问。

字典

python中的字典和perl中的哈希是很相似的,包括其重要的几条属性:

1. 键值必须是唯一的

2. 键值必须是可哈希的,也就是键值不能够是可变类型,比如列表、字典等

3. 键是无序的,根据sorted()方法可以对其进行排序

字典的创建:

可以通过以下几种方式:

dict1 = {’name’:’Lyon’,’age’:23,’gender’:’male'}

dict2 = dict(([’name’:’Lyon’,’age’:23,’gender’:’male’]))

dict3 = {}.fromkeys((’name’,’age’,’gender’),default=None)

第三种方式可以设置一个初始值,使所有的键的值都是该值,如果不设置则为None。

字典的访问:

通过dict1[‘key’]的方式访问特定键的值,也可以通过内建的方法 keys(),values(),items()来分别访问字典中的所有键、所有值、所有键值对,并通过迭代的方式逐一访问每个元素:

for key in dict1.keys():
    print ‘key=%s, value=%s’ % (key,dict1[key]) 

在Python2.2之后,序列对象(如字典和文件)都可以通过迭代器来访问,而不需要再执行keys()方法:

for key in dict1:
    print ‘key=%s, value=%s’ % (key,dict1[key])

通过in 和 not in操作符,可以判断字典中是否有某个键

字典的维护

 

可以对一个已存在或者未存在的键更改其值,如果该键已存在,则会修改原键对应值,若不存在,则添加新的键值对;

通过del 操作符,可以删除某一个条目,或者整个字典;也可以通过{}.clear()方法删除所有条目,{}.pop()方法删除并返回某一个条目;

集合

Python引入集合作为基本数据类型,集合分为set()、frozenset()两种,分别为可变和不可变类型,只能通过这两个工厂函数来创建集合。可以通过包含所有元素的列表来创建一个集合,也可以通过字符串创建,此时集合的元素将是每个字符,当然,每个元素都是唯一的,在创建过程中会去掉冗余元素:

 

set1 = set(['A','BB','A'])
print set1
set2 = set('aaabbbccc')
print set2

结果为:

 

set(['A', 'BB'])
set(['a', 'c', 'b'])

通过in、not in操作符可以判断集合中是否有该成员,同时也可以通过 for i in set1的方式遍历集合。

add()方法可以添加一个元素到集合中

update()方法则将另一个集合合并到集合中,相当于 |= 的操作,

del()方法可以删除某个元素或者整个集合

其他的操作符见下图:

Pyhon学习_04_字典、集合