序列性质

序列类型:字符串,列表,元组,集合和字典。

通用性质

序列索引

索引机制,可以通过 [] 对序列下标进行访问,支持 0 到 (n-1) 和 -1 到 -n 两种方式访问。

in

a in b 表示查询 a 是否在 b 中,其中字典只能查询索引,也可以用 not in (一定要记得字符串也可以用!)

序列内置函数

len() 计算序列的长度,即返回序列中包含多少个元素。
max() 找出序列中的最大元素。注意,对序列使用 sum() 函数时,做加和操作的必须都是数字,不能是字符或字符串,否则该函数将抛出异常,因为解释器无法判定是要做连接操作(+ 运算符可以连接两个序列),还是做加和操作。
min() 找出序列中的最小元素。

list() 将序列转换为列表。
tuple() 将序列转化为元组。
str() 将序列转换为字符串。

sum() 计算元素和。
sorted() 对元素进行排序。
reversed() 反向序列中的元素。
enumerate() 将序列组合为一个索引序列,多用在 for 循环中。

copy() 浅拷贝
deepcopy() 深拷贝


至于里面的具体用法,下面不同的序列里面会介绍。

特殊性质

注意,特殊性质只有字符串,列表和元组支持

序列切片

[start : end : step] 来返回一个从 start 开始,end 结束,元素取值间隔为 step。start 默认值 0,end 默认值 序列长度,step 默认值 1 。

序列相加

支持 + 运算符,将两个序列拼接为一个。

序列相乘

乘法的作用是讲序列扩展为原来的倍数。 *n 表示赋值为 n 个重复的拼接在一起。

列表 list

基本概念

概念和 Java 中列表是一样的,等价于一个存放 Object 的数组,类型返回为 list。

通过 [a,b,c,d] 来初始化列表,里面什么都可以塞,但是最好还是只塞同类型的。

1
2
list_data = []  
print(type(list))

添加元素

  • append(obj) 将对象 obj 直接添加到列表尾部

  • extend(obj) 如果 obj 是序列,则等同于调用 list(obj) 之后,拼接到列表尾部(就是拆分一下再拼接)

  • insert(index,obj) 在指定索引 index 的地方,插入对象 obj

删除元素

  • 根据索引删除,使用 del list[x],(支持切片)和 pop(index)(只能一个一个删除)。

  • 根据值删除,使用 remove(obj)

  • 全部删除 del list_name(删除变量),或者 clear()(删除数据引用)

修改元素

支持索引和切片修改。

list_name[index]=x

list_name[start:end]=new_list=[x,y,z]

查找元素

index(obj,start,end) 支持在 start end 区间里面找元素 obj start end 可以不写(字面量比较)。
count(obj) 可以返回元素出现次数(字面量比较而非地址)

元组 tuple

元组就是不能更改版本的列表,可以使用两种方式创建元组:

  1. 使用圆括号初始化元组 (1,2,'3'),或者 ()

  2. 将其他类型序列转化为元组 tuple(obj)

字典 dic

就是 Java 里面的 Map。通过键值对的形式存储数据,其中对值没有要求,键必须是不可变的,比如数字、字符串和元组。

创建字典

  1. 使用大括号初始化字典 dic_a = {key1:value1,key2:value2}

  2. list 作为 keys 初始化字典:

使用 fromkeys(list,value) 传入一个列表,和一个默认值,初始化出来列表作为 key 的字典。

  1. 使用构造函数 dict() 创建字典。

访问字典

访问字典的 key 都是通过字面量进行比较的。

  1. 使用 [key] 来访问,如果没有找到则抛异常。

  2. 使用 get(key) 来访问,如果没有找到则返回 None

添加修改

想要添加数据,直接给不存在的 [key] 赋值即可。

要修该也直接 [key] 赋值即可。

遍历

  • keys() 返回所有的键。

  • values() 返回所有的值。

  • item() 返回所有的键值对,每个键值对以元组的形式存在。

删除

使用 pop(key) 进行删除键值对。

Set 集合

set 集合就是不存在重复元素的 list,它满足数学里面对集合的定义:唯一,不可变,无序。

这个玩意没有办法通过下标访问,只能借助于循环,进行遍历访问。一般用于数学里面集合运算,才会用 set。

这里的内容用到了再去看吧。

字符串

这里主要就是字符串相关的 API,具体使用的时候,再去查一查吧。

byte string

表示字符串使用 byte 数组来存储,因此可以这样来定义字符串:

1
str = b'\xe5\x88\xa0\xe9\x99\xa4'

format string

Python 在 3.6 中支持了 f-string 语法,表示格式化字符串,format string:可以更方便的在字符串中填充变量:

1
2
3
xorex = "Xorex"  

name = f"Tempest-{xorex}"

这样 name 字符串就是一个 fstring,并且会将大括号里面的变量进行字符替换,会自动调用 __str__ 方法进行转换。

raw string

rstring 表示 raw string 原始字符串,表示这个字符串自动忽略所有的转义符号。常用在正则表达式字符串中,用来忽略 \w \d 这些匹配符号的转义。

1
2
3
regex = r"^[0-5][a-z].*?\\w+\\d+$"  

result = re.compile(regex)