Python中的组合数据类型包括序列类型、字典和集合。所有的这些类型对象都是可迭代(iterable)的。
Python中的序列包括字符串,列表,元组。序列中每一个元素都有一个跟位置相关的序号称为索引。序列中字符串的知识点在之前的博客中。
列表用中括号[ ]表示。可直接赋值或者利用list( )函数创建。列表也有很多常用方法,其格式和字符串方法一样:
L.append(x) 向列表尾部添加对象x
L.extend(x) 将可迭代对象t的每个元素添加到列表尾部
L.insert(i,x) 在列表中索引值为i的位置前插入对象x
L.copy( ) 拷贝列表
对于列表拷贝的说明:利用copy( )的办法复制了一个新的列表并存储在b中,那么对变量b的修改不会影响变量a,这个方法是浅拷贝办法,只复制父对象不复制内部子对象,不会复制二级元素,所以如果列表中还有列表,那么内部列表中的元素就是对同一对象的引用。修改内部列表中的元素就会修改原列表中相对应的元素。但是如果使用赋值运算“c=a”创建一个新的列表c,这与copy( )创建的列表不一样,c中的任何元素值发生改变,a中的值也随之发生改变。
要想实现深拷贝,可用copy模块中deepcopy( )函数来实现。这样即使修改了新列表中的二级元素也不会影响到原列表中相应的元素
以上仅举例,其他常用方法可上网查找。
元组用括号( )标识。与列表不同的是,列表是可变的而元组是不可变的,所以元组的使用更适用于元素不需要改变或者需要保护的场景。元组经常有以下作用:1)作为映射类型中的键作为字典的键 2)作为函数的特殊类型的参数常作为可变长参数 3)对于未明确定义的一组对象或者函数返回值是一组值时默认为元组类型。
创建元组的方法和列表相似。创建只有一个元素的元组时,可在数据后加一个逗号,例如bTuple=(23,) 就创建了只有一个元素23的元组bTuple.
元组不可变,不能改变元组元素的值。但是元组中的可变元素仍然可变,比如元组中列表中的元素。
序列类型的转化函数有:eval、list、tuple、str分别对应计算结果、列表、元组、字符串。其中list和tuple中使用可迭代对象,str中使用对象obj。其他常用内建函数还有len(sequence) sorted(iter,key,reverce) sum(iter,start)等。
字典的创建:1)用大括号{}直接创建 2)用dict()创建将序列类型的数据对象转换成字典 3)用方法fromkeys(seq,val=None)创建所有值都相等的字典其中seq用元组形式
字典的基本操作:
键值索引(直接通过键来索引)、字典更新(直接修改键的值)、添加字典元素(直接对新的键进行赋值)、字典成员判断(用in实现返回True和False)、删除字典(直接del键值一起删去)、元素个数(len函数返回字典中键值对的个数)
字典的方法:
字典的常用方法使用格式为“对象.函数”
D.keys( ) 返回字典D的键的列表
D.values( ) 返回字典D的值的列表
D.items( ) 返回字典D的键值对(元组)构成的列表
D.clear( ) 清空字典,得到一个空字典
D.get(key,default=None) 返回键key对应的值,如果该键不存在就返回default值
其他字典的常用方法可在网上查找。
Python中集合与数学中的集合概念一样,是一个无序的,没有重复元素的组合。集合可分为可变集合和不可变集合两类。
集合用“{}”来表示,每个元素用逗号分隔,可直接创建集合,或者用set函数和frozenset函数分别创建可变集合和不可变集合。创建空集合必须使用set函数,空的{}创建的是空字典。
集合的逻辑运算符与功能:
逻辑运算符 | 功能 |
---|---|
== | 判断集合是否相等 |
!= | 判断集合是否不相等 |
< | 判断是否是集合的真子集 |
<= | 判断是否是集合的子集(包括非真子集) |
> | 判断是否是集合的真超集 |
>= | 判断是否是集合的超集(包括非真超集) |
判断结果输出为布尔类型
集合运算符与功能:
交运算“&”获得交集,并运算“|”获得并集,“-”是差运算,“”对称差分,AB结果只出现在其中一个集合中而不同时出现于两个集合中的元素,即这些元素要么只属于集合A,要么只属于集合B。集合的四个运算符还可以与赋值符号符合使用组成&=、|=、-=等用法。
由于集合的特殊操作,常用于包含关系的比较。例如判断某组数据是否被包含在另一组数据中:
>>>{'h','i'}<={'h','e','l','o','i'}
True
集合的内建函数和方法:
集合的内建函数和方法主要对集合进行更新操作。格式为“对象.方法“
s.add(obj) 将对象obj添加到集合s中
s.copy( ) 返回集合s的副本
s.update(t) 修改s集合,使s中包含s和t并集的成员
s.clear( ) 清空集合,返回一个空的集合
其他集合的内建函数和方法可以上网查找。
在学习python的组合数据类型时,要明确各个类型的特点特性,知道大概的基本用法。然后在以后的运用中注意积累新函数、新方法,写代码时注意细节、逻辑。在碎片的新知识积累的时候,也要逐步构建整体的知识体系理论框架,逐步打牢基础。切忌心急浮躁,要静下心来学习。