Python学习 - 集合、字典

集合类型(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)])

转载于:https://my.oschina.net/u/3251280/blog/856890

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值