Python-02-序列
序列性质
序列类型:字符串,列表,元组,集合和字典。
通用性质
序列索引
索引机制,可以通过 []
对序列下标进行访问,支持 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 | list_data = [] |
添加元素
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,2,'3')
,或者()
将其他类型序列转化为元组
tuple(obj)
字典 dic
就是 Java 里面的 Map。通过键值对的形式存储数据,其中对值没有要求,键必须是不可变的
,比如数字、字符串和元组。
创建字典
使用大括号初始化字典
dic_a = {key1:value1,key2:value2}
list 作为 keys 初始化字典:
使用 fromkeys(list,value)
传入一个列表,和一个默认值,初始化出来列表作为 key 的字典。
- 使用构造函数
dict()
创建字典。
访问字典
访问字典的 key 都是通过字面量进行比较的。
使用
[key]
来访问,如果没有找到则抛异常。使用
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 | xorex = "Xorex" |
这样 name 字符串就是一个 fstring,并且会将大括号里面的变量进行字符替换,会自动调用 __str__ 方法进行转换。
raw string
rstring 表示 raw string 原始字符串,表示这个字符串自动忽略所有的转义符号。常用在正则表达式字符串中,用来忽略 \w
\d
这些匹配符号的转义。
1 | regex = r"^[0-5][a-z].*?\\w+\\d+$" |