刚开始学Python,对于刚学完C语言的我来说,厘清这几个定义确实花了不短的时间(至少相对于C语言来说),同时在网上好像没有看到比较清晰的解释,所以我想整理一下,之后用多了可能会回来再改
序列
序列是具有先后关系的一组一维元素
同时python相对C语言非常方便的一点是其中元素的类型不必相同,不仅是数字或字符,同时也能包括自身类型的元素,比如[1, ‘c’, ”abc“, [2, d], {a, c, b}]。
序列可以通过下标进行(随机/无序)读取如下图,注意正反向起始序号不同
序列类型通用操作符
x in s : 如果x 是 序列s的元素,返回True,否则返回False
x not in s : 与上式相反,不是则返回True
s + t : 返回两个序列s与t的连接结果
s*n 或 n*s :返回序列s复制n次的结果是
s[i] : 返回序列s中的下标为i的元素
s[i:j:k] : 切片操作,返回序列s中从下标为i的元素至第j个元素(不包括第j个)的元素子序列,步长为k,其中k及其之前的那个冒号可以省略,默认为1
同时切片可以理解为当k大于零时从前往后,k小于零时从后往前
序列类型通用函数
len(s) : 返回序列s的长度即元素长度
min(s) : 返回序列s中的最小元素(需要元素可比较)
max(s) : 同上,返回最大值
s.index(x, i, j) : 返回序列s中下标i至j中第一个x元素的下标,其中i与j及其之前的逗号可省略,默认范围为全序列
s.count : 返回序列s中x元素出现的总次数
字符串
列表
列表使用[]或list()创建,元素之间由逗号分隔,创建之后可以修改,注意其中元素类型可以不同。
列表类型操作函数
list[i] = x : 将列表list下标为i的元素替换为x
list[i:j:k] = list1 : 用列表list1替换list切片所对应的元素子列表
del list[i:j:k] : 删除列表list中对应切片的元素,j与k及其之前的逗号可以省略,默认只删除下标为i的元素
list += list1 : 将列表list1的元素添加到列表list中
list *= n : 更新列表list为 其元素顺序重复n次的列表
>>>list = ["red", "green", "blue"]
>>>list
['red', 'green', 'blue']
>>>list[1:2] = [1, 2, 3, 4]
>>>list
['red', 1, 2, 3, 4, 'blue']
>>>del list[::3]
[1, 2, 4, 'blue']
>>> list*2
[1, 2, 4, 'blue', 1, 2, 4, 'blue']
list.append(x) : 在列表最后增加一个元素x
list.clear() : 删除列表list中所有元素
list.copy() : 返回一个与list相同的列表
list.insert(i, x) : 在列表下标为i的地方增加元素x
list.pop(i) : 删除并返回列表list中第i个元素list.remove(x) : 删除列表liest中的第一个x元素
list.reverse() : 反转列表list中的元素
>>> list = ["cat", "dog", "tiger", 1024]
>>> list.append(1234)
['cat', 'dog', 'tiger', 1024, 1234]
>>> list.insert(3, "human")
['cat', 'dog', 'tiger', 'human', 1024, 1234]
>>> list.reverse()
[1234, 1024, 'human', 'tiger', 'dog', 'cat']
元组
元组使用()或 tuple() 创建(也可以不使用括号),元素之间由逗号分隔,且元组一旦创建就不能修改。也因为不能修改元组没有特殊操作。
>>>creature = "red", "green", "blue" #此处没有使用括号
>>>creature
('red', 'green', 'blue') # 输出为元组类型
集合
这个集合和数学中的集合概念一样,集合中的元素无序而唯一。
集合使用{}或set()建立(空集合必须用set()创建),元素之间用逗号分隔。
集合的操作
S | T : 并,返回一个包括 在集合S和T中的所有元素的集合
S - T : 差,返回一个包括 在集合S但不在T中的元素的集合
S & T : 交,返回一个包括 同时在集合S和T中的元素的集合
S ^ T : 补,返回一个包括 集合S和T中的非相同元素的集合
S >= T : 返回True/False,判断S和T的包含关系,等号可省略
增强操作
S |= T : 使集合S 包括在集合S和T中的所有元素
S -= T : 使集合S 包括在集合S但不在T中的元素
S &= T : 使集合S 包括同时在集合S和T中的元素
S ^= T : 使集合S 包括集合S和T中的非相同元素
集合的处理
S.add(x) : 如果x不在集合S中,将x增加到S
S.discard(x) : 移除S中元素x,如果x不在集合S中,不报错
S.remove(x) : 移除S中元素x,如果x不在集合S中,产生KeyError异常
S.clear() : 移除S中所有元素
S.pop() : 随机删除并返回S的一个元素,若S为空则产生KeyError异常
set(x) : 将变量x转变为集合类型
字典
使用字典要理解映射,就像列表中每个下标都对应唯一的位置,下标就是键(key),位置就是值(value)。在字典中,每个键都是唯一的,且都有唯一对应的值(值可以不唯一)。
字典用{}与dict()创建,键和对应的值 为键值对,用 : 分隔,可以将键值对视为字典的元素。每个键值对之间用逗号分隔,如下。
<字典> = {<键1>:<值1>, <键2>:<值2>, <键3>:<值3>}
<字典>[<键>] = <值>
字典操作函数
del d[k] : 删除字典d中键k对应的数据值
k in d : 判断键k是否在字典d中,如果在返回True,否则False
d.keys() : 返回字典d中所有的键信息
d.values() : 返回字典d中所有的值信息
d.items() : 返回字典d中所有的键值对信息
d.get(k, ) : 键k存在,则返回相应值,不在则返回值
d.pop(k, ) : 键k存在,则取出相应值,不在则返回值
d.popitem() : 随机从字典d中取出一个键值对,以元组形式返回
d.clear() : 删除所有的元素(键值对)
len(d) : 返回字典d中元素的个数