跳到主要内容

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