列表, 元组和 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,无法修改;
- 但可通过改变变量指向的元组,
- 间接实现修改元组的目的。