Python组合数据类型
Python组合数据类型
元组
元组的元素是固定的,一旦创建就不能修改,(用圆括号表示,tuple()函数创建);表达固定数据项,函数多返回值,多变量同步赋值,循环遍历等情况下十分有用,由于Python的实现,元组比列表的效率更高。
序列类型的通用操作符和函数
| 操作符 | 描述 |
|---|---|
| s[i] | 索引,返回序列的第i个元素 |
| s[i: j] | 分片,返回包含序列s第i到j个元素的子序列(不包含第j个) |
| s[i: j: k] | 分片,返回包含序列s第i到j个元素以k为步数的子序列 |
| len(s) | 序列s的元素个数(长度) |
| min(s) | 序列s中的最小元素 |
| max(s) | 序列s中的最大元素 |
| sum(s) | 序列s中的所有元素之和 |
| s.index(x, i, j) | 序列s中从i到j位置中第一次出现元素x的位置 |
| s.count(x) | 序列s中出现x的总次数 |
| <,>,=,!=,<=,>= | 比较两个序列 |
集合
集合的元素不可重复,且不按任何特定顺序放置,所以不能使用下标访问集合中的元素,同时元素类型只能是固定数据类型,(用大括号表示,set()函数创建);例如整数、浮点数、字符串、元组等,列表、字典和集合类型是可变数据类型,不能作为集合的元素出现。
集合类型的操作符
| 操作符 | 描述 |
|---|---|
| S - T 或 S.difference(T) | 返回一个新集合,包括在集合S中但不在集合T中的元素 |
| S-=T 或 S.difference_update(T) | 更新集合S,包括在集合S中但不在集合T中的元素 |
| S & T 或 S.intersection(T) | 返回一个新集合,包括同时在集合S和T中的元素 |
| S&=T 或S.intersecion_update(T) | 更新集合S,包括同时在集合S和T中的元素 |
| S ^ T 或 s.symmetric_difference(T) | 返回一个新集合,包括集合S和T中的元素,但不包括同时在集合S和T中的元素 |
| S=^T或s.symmetric _difference_update(T) | 更新集合S,包括集合S和T中的元素,但不包括同时在集合S和T中的元素 |
| S 或 T 或 S.union(T) | 返回一个新集合,包括集合S和T中的所有元素 |
| S =或 T 或 S.updateT) | 更新集合S,包括集合S和T中的所有元素 |
| S<=T 或 S.issubset(T) | 如果S与T相同或S是T的子集,返回True,否则返回False,可以用S<T判断S是否为T真子集 |
| S>=T 或 S.issuperset(T) | 如果S与T相同或S是T的超集,返回True,否则返回False,可以用S>T判断S是否为T真超集 |
集合类型的操作函数或方法
| 函数或方法 | 描述 |
|---|---|
| S.add(x) | 如果数据项x不在集合S中,将x增加到S |
| S.clear() | 移除S中的所有数据项 |
| S.copy() | 返回集合S中的一个副本 |
| S.pop() | 随机返回集合S中的一个元素,S为空,产生KeyError异常 |
| S.discard(x) | x在集合S中,移除该元素;如果x不在集合S中,不报错 |
| S.remove(x) | 如果x在集合S中,移除该元素;不在则产生KeyError异常 |
| S.isdisjoint(T) | 如果集合S与T没有相同元素,返回True |
列表
列表的长度和内容都是可变的,可自由对列表的数据项进行增加、删除或替换,(用中括号表示,list()函数创建);列表没有长度限制,元素类型可以不同,使用非常的灵活。
列表类型特有的函数或方法
| 函数或方法 | 描述 |
|---|---|
| ls[i] = x | 替换列表ls第i数据项为x |
| ls[i: j] = lt | 用列表lt替换列表ls中第i到第j项数据(不含第j项) |
| ls[i: j: k] = lt | 用列表lt替换列表ls中第i到第j项以k为步长的数据 |
| del ls[i: j] | 删除列表ls第i到第j项数据,等价于ls[i: j]=[] |
| del ls[i: j: k] | 删除列表ls第i到第j项以k为步数的数据 |
| ls+=lt 或 ls.extend(lt) | 将列表lt元素增加到列表ls中 |
| ls *= n | 更新列表ls,其元素重复n次 |
| ls.append(x) | 在列表ls最后增加一个元素x |
| ls.clear() | 删除ls中的所有元素 |
| ls.copy() | 生成一个新列表,复制ls中的所有元素 |
| ls.insert(i,x) | 在列表ls的第i位置增加元素x |
| ls.pop(i) | 将列表ls中的第i项元素取出并删除该元素 |
| ls.remove(x) | 将列表中出现的第一个元素x删除 |
| ls.reverse(x) | 将列表ls中的元素反转 |
| ls.sort() | 以升序对列表中的元素排序 |
字典
字典是存储键值对集合的容器对象,在字典中关键字必须是可哈希对象,并且关键字不能重复,字典中的元素也是无序的,直接使用大括号创建一个空字典。
字典类型的函数和方法
| 函数或方法 | 描述 |
|---|---|
| .keys() | 返回所有的键信息 |
| .values() | 返回所有的值信息 |
| .items() | 返回所有的键值对 |
| .get() | 键存在则返回相应值,否则返回默认值 |
| .pop() | 键存在则返回相应值,同时删除键值对,否则返回默认值 |
| .popitem() | 随机从字典中取出一个键值对,以元组形式返回 |
| .clear() | 删除所有的键值对 |
| del [] | 删除字典中某一个键值对 |
| in | 如果键在字典中则返回True,否则返回False |