列表, 元组和 range
序列类型
基本概念
序列类型
- 可变序列类型;
- list;
- range;
- 不可变序列类型;
- tuple;
通用操作
x in s
- 顾名思义, 不做解释;
x not in s
- 顾名思义, 不做解释;
len() 函数
- 顾名思义, 不作解释;
min() 函数
- 顾名思义, 不作解释;
max() 函数
- 顾名思义, 不作解释;
sum() 函数
- 顾名思义, 不作解释;
索引
- s[i];
- 从 0 开始;
- 负数索引;
- -1 表示最后一个元素,
- 以此类推;
切片
- s[i: j: k];
- 返回 s 从索引 i 到 j 且步长为 k 的切片, 范围区间左闭右开;
- i: 起始索引, 省略表示 0/len(s), 取值取决于 k 正负号;
- j: 终止索引, 省略表示 len(s)/0, 取值取决于 k 正负号; ;
- k: 步长, 默认为 1 (可选);
- 机制
- 依次取索引为 i + n*k 的元素;
>>> list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print(list[::1])
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print(list[::-1])
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
s.count() 方法
- s.count(x);
- 求 x 在 s 中的出现次数;
- s: 序列类型;
- x: 元素;
- 返回值: 出现次数;
可变序列类型操作
s[i] = x
- s[i] 赋值 x;
s[i:j:k] = t
- s[i: j: k] 切片赋值 t;
s.append() 方法
- s.append(x);
- s 末尾添加元素 x;
- x: 待添加元素;
s.insert() 方法
- s.insert(i, x);
- 指定位置添加元素 x;
- i: 索引;
- x: 待添加元素;
s.extent() 方法
- s.extnet(t);
- s 链接 t, 修改 s 自身;
- t: 链接序列类型;
del s[i:j:k]
- 删除切片元素;
s.pop() 方法
- s.pop([i]);
- 移除索引为 i 的元素;
- i: 默认为 -1 (可选);
- 返回值: 移除元素;
s.remove() 方法
- s.remove(x);
- 移除值为 x 的元素;
- x: 移除值;
remove() 方法的不足
- 只运行一次,
- 故进删除序列类型中第一个值为 x 的元素;
s.reverse() 方法
- s.reverse();
- 反转并修改当前列表;
reversed() 函数
- reversed();
- 反转列表;
- 返回值: 副本;
s.clear() 方法
- s.clear();
- 清空 s;
转换 API
list() 函数
- list([iterable]);
- 将 iterable 转换为列表;
- iterable: 可迭代对象;
- 返回值: 列表;
>>> list('kxh')
['k', 'x', 'h']
tuple() 函数
- tuple([iterable]);
- 将 iterable 转换为元组;
- iterable: 可迭代对象;
- 返回值: 元组;
>>> list('kxh')
('k', 'x', 'h')
列表
基本概念
列表
- 不同类元素;
- 可改变;
- 有序集合;
a_list = [element_1, element_2, ..., element_n]
a_list = list()
嵌套列表
- 列表元素类型不限,
- 可嵌套元组/字典等;
列表推导式
语法格式
# code
squares = [value**2 for value in range(1, 11)]
print(squares)
# result
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
列表常用 API
list.sort() 方法
- list.sort(reverse = True);
- 排序并修改当前列表;
- reverse: 排列顺序, 默认正序;
sorted() 函数
- sorted(reverse = True);
- 排序列表;
- reverse: 排列顺序, 默认正序;
- 返回值: 副本;
ranges
range() 函数
- range(start, stop[, step]);
- 创建从 start 到 stop 且步长为 step 的列表, 取值区间左闭右开;
- start: 起始值;
- stop: 终止值;
- step: 步长, 默认为 1 (可选),
- 返回值: 列表;
机制
- r[i] = start + step*i;
>>> list(range(0, 10, 3))
[0, 3, 6, 9]
>>> list(range(0, -10, -1))
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
元组
基本概念
元组
- 不同类元素;
- 不可改变;
- 有序集合;
# 空元组
# 通过 , 定义
tuple_name = (,)
# 单个元素元组
tuple_name = (element_1,)
# 多个元素元组
tuple_name = (element_1, element_2, ..., element_n)
# tuple 函数
a_tuple = tuple()
嵌套元祖
- 元组元素类型不限,
- 可嵌套列表/字典等;
重写元祖
- 元组为 immutable sequences, 无法修改;
- 但可通过改变变量指向的元组,
- 间接实现修改元组的目的;