您的位置:首页 > 编程语言 > Python开发

Python学习 - 集合、字典

2017-03-11 00:00 260 查看
摘要: 字典

集合类型(set):支持关系操作符(in),对象大小计算操作符(len()),也是iterable。

集合是0个或多个对象引用的无序组合,这些对象引用所引用的对象都是可哈希运算的。因集合时无序的,没有索引位置的概念,也不能分片或按步距分片。有两种内置的集合类型:可变的set类型,固定的frozenset类型。

所有内置的固定数据类型(比如 float、frozenset、int、str、tuple)都是可哈希运算的,都可以添加到集合中。内置的可变数据类型(比如 dict、list、set)都不是可哈希运算的,这些数据类型不能添加到集合中。

空集合必须使用set()创建,非空集合可不使用set()函数创建,是用大括号将一系列以逗号隔开的值包裹起来创建集合。

集合中包含的每个数据项都是独一无二的。x是一个字符串列表,在执行x=list(set(x))后,x中的每个字符串都将是独一无二的,其存放顺序也是任意的。

set(): 将其他类型转换为集合,当字典作为参数传入set()函数时,只有键会被使用。

a={1,2} b={2,3}

in:测试值是否在集合中存在。’2’ in a 存在返回True

intersection()或&:交集运算符,查看多个集合之间组合的结果,结果是一个集合

a & b 或 a.intersection(b)

union()或|:并集运算符,元素至少出现在一个集合中

a|b 或 a.union(b)

difference() 或 - :差集运算符,元素出现在第一个集合,但不出现在第二个集合

a-b 或 a.difference(b)

symmetric_difference() 或 ^ : 异或集运算符,元素仅在两个集合中出现一次

a^b 或 a.symmetric_difference(b)

issubset() 或 <=:判断一个集合是否是另一个集合的子集,是返回 True

a<=b 或 a.issubset(b) a<b 真子集

issuperset() 或 >=:判断一个集合是否是另一个集合的超集,是返回 True

a>=b 或 a.issuperset(b) a>b 真超集

集合内涵:

除调用set()创建集合,还可使用集合内涵来创建集合。集合内涵是一个表达式,也是一个带有可选条件的循环,与列表内涵类似,也支持两种语法格式:

{expression for item in iterable}

{expression for item in iterable if condition}

映射类型:

映射类型是一种支持成员关系操作符(in)与尺寸函数(len())的数据类型,并且也是可以迭代的。是键-值数据项的组合,提供了存储数据项及其键、值的方法。Python3.0支持两种无序的映射类型:内置的dict类型与标准库中的collections.defaultdict类型;Python3.1中引入了一种新的有序的映射类型 collections.OrderedDict

字典(dict)

与列表类似,但其中元素的顺序无关紧要,每个元素拥有与之对应的互不相同的键(key),需要通过键来访问元素。键通常是字符串,但还可以是python中其他任意不可变类型:布尔型、整数、浮点型、元组、字符串以及其他一些。字典在其他语言中,可能会被称作关系型数组、哈希表或哈希图。

用大括号{}将一系列以逗号隔开的键值对(key:value)包裹起来即可进行字典的创建。空字典的创建:{}

dict(): 将包含双值子序列的序列转换成字典。 sarc=dict([‘may’,’rll’],[’pc’,’lc’])

update(): 将一个字典的键值对复制到另一个字典中,存在则替换。sarc.update(sarc1)

del: 删除具有指定键的元素。 del sarc[‘may’] [‘may’]:dict中的键

clear:删除所有元素。 sarc.clear

in: 判断某个键是否存在一个字典中。 ‘may’ in sarc 返回 True

[key]:指定字典名和键即可获得对应的值: sarc[‘may’],若不存在则产生异常keyError

get(): 指定键和可选值 sarc.get(‘may’,’not a’) 若键存在,返回键值,否则返回可选值,未给定可选值,返回 None

keys():获得字典中的所有键,需使用list()将返回转换为列表类型。 sarc.keys()

values():获取字典中的所有值,需使用list()将返回转换为列表类型。 sarc.values()

items():获取字典中所有的键值对,需使用list()将返回转换为列表类型,每个键值对以元组的形式返回。 sarc.items()

=:给字典赋值,对字典内容的修改会反映到所有与之相关联的变量名上。

copy(): 将字典复制到一个新字典中

字典内涵:语法格式如下

{keyexpression: valueexpression for key,value in iterable}

{keyexpression: valueexpression for key, value in iterable if condition}

默认字典:words=collections.defaultdict(int)

有序字典:words=collections.OrderedDict([(‘z’,-4),(‘e’,19),(‘k’,7)])
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  字典