Python数据类型(三)数据结构类型—list、tuple、range、set、frozenset、dict

数据结构类型是指用来存储数据、文字、字符、二进制、类对象,进一步方便操作查找存储内容的结构。数据类型分为了序列类型集合类型映射类型

​  序列类型是Python数据类型的内置基本数据类型,有三种基本序列类型:listtuplerange。同样,序列类型分为通用序列类型、可变类型和不可变类型。

​  集合类型是指由具有唯一性的hashable对象锁组成的无序多项集。无序多项集与序列类型不同,作为无序的集合并不支持记录元素的位置和插入顺序,相应地集合也不支持索引、切片或其他序列类的操作。目前有两种集合类型:setfrozenset

​  映射类型会将hashable值映射到任意对象,映射属于可变对象,目前只有一种标准映射类型对象:dic

序列类型-list,tupe,range

序列类型有通用序列,可变序列和不可变序列。序列支持一系列的操作。

通用序列操作支持

通用序列支持的操作可变序列和不可变序列都支持,下面是通用序列的支持操作:

备注:表格中s和t是具有相同类型的序列,nij 和 k 是整数,x 是任何满足 s 所规定的类型和值限制的任意对象,序列的操作同样具有优先级顺序,表格是按照优先级降序排列(not in 和 in 优先级相同)

运算 释义
s.count(x) x在s中出现的总次数
s.index(x,i,j) x在s中首次出现项的索引号(索引号在i或其后且在j之前)
max(s) s的最大项
min(s) s的最小项
len(s) s的长度
s[i:j:k] s从i到j步长为k的切片
s[i:j] s从i到j的切片
s[i] s的第i项
sn 或n\s 相当于s与自身进行n次拼接
s+t s与t两个序列进行拼接
x not in s 如果x不存在于s项中,则返回True,如果存在于s中,则返回False
x in s 如果x存在于s中,则返回True,如果不存在于s中,则返回True

想同类型的序列支持比较,tuple和list的比较是通过比较对应元素的顺序,若比较结果相同,则每个元素比较结构都必须相等,并且两个序列长度必须相同。

可变序列操作支持

通用序列的操作在可变序列中适用,但可变序列也有部分自己的支持操作,可变序列的操作如下表所示:

备注:s是可变序列类型的实例,t是任意可迭代对象, x 是符合对 s 所规定类型与值限制的任何对象

操作 释义
s[i] =x 将s的第i项替换为x
s[i:j] = t 将s从i到j的切片替换为可迭代对象t的内容
del s[i:j] 删除s从i到j的切片 等同于s[i:j] = []
s[i:j:k] =t 将s从i到j步长为k的切片替换为可迭代对象t的内容
del s[i:j:k] 删除s从i到j步长为k的切片 等于s[i:j:k] = []
s.append(x) 将x添加到序列的末尾
s.clear() 将s中的所有项移除 等同于del s[:]
s.copy() 创建s的浅拷贝
s.extend(t)或 s+=t 用 t 的内容扩展 s 两个序列的合并
s*=n shiyongs的内容重复n次来对其进行更新
s.insert(i,x) 在由 i 给出的索引位置将 x 插入 s (等同于 s[i:i] = [x])
s.pop(i) 提取在i位置上的序列项,并从s中移除该项
s.remove(x) 若x在s中存在,则将s[i] (s[i]==x)的第一个元素移除
s.reverse() 将列表中的元素逆序

list - 列表

​ 列表是可变序列,通常用于存放同类项目的集合(其中精确的相似程度将根据应用而变化)。

list构建 以及list方法

列表的构建有多种方式

  • 使用一对方括号来表示空列表: []

  • 使用方括号构建,列表中的项以逗号分割:[a,b,c]

  • 使用列表推导式: [x for x in iterable]

  • 使用类型构造器: list() 或list(iterable)。构造器将构造一个列表,其中的项与 iterable 中的项具有相同的的值与顺序。 iterable 可以是序列、支持迭代的容器或其它可迭代对象。 如果 iterable 已经是一个列表,将创建并返回其副本,类似于 iterable[:]。 例如,list('abc') 返回 ['a', 'b', 'c'] 而 list( (1, 2, 3) ) 返回 [1, 2, 3]。 如果没有给出参数,构造器将创建一个空列表 []

  • 其它操作,例如sorted()内置函数,分类后会产生一个列表。

    列表作为序列类型,实现了所有通用序列和可变序列的操作,如下:

    | 列表实现的序列操作 | 释 |
    | —————————– | ———————————————————— |
    | list.append(x) | 在列表的末尾添加一个元素。 |
    | list.extend(iterable) | 使用可迭代对象中的所有元素来扩展列表 |
    | list.insert(i,x) | 在给定的位置插入一个元素。第一个参数是要插入的元素的索引,所以 a.insert(0, x) 插入列表头部, a.insert(len(a), x) 等同于 a.append(x) |
    | list.remove(x) | 若x在列表中存在,则将列表中的项的值为x的第一个元素移除 |
    | list.pop(i) | 删除列表中给定位置的元素并返回它。如果没有给定位置,a.pop() 将会删除并返回列表中的最后一个元素。 |
    | list.clear() | 删除列表中所有的元素 |
    | list.index(x, start, end) | 返回x出现的第一个索引位置ÿ

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值