Sequence
Lists
列表是python中的内置数据类型
- 使用[]创建列表
- 使用赋值语句命名列表
- 使用name[下标]访问列表元素(0-index),或使用getitem(
-
,
)(operator模块)来访问元素 - 使用len()函数获取元素个数
name[下标]是一种元素评估表达式,可以依次评估下标对应元素
列表中的元素可以是表达式,此时列表中的值将绑定为表达式的结果
digits = [2//2,2+2,2,2*2]
列表间可以相加与相乘(运算符或函数)
[2,7]+[1,8,2,8]*2 == [2,7,1,8,2,8,1,8,2,8]
列表中的元素可以是任何东西,包括列表
1 | pairs = [[10,20],[30,40]] |
in运算符
in运算符可以判断某元素是否存在于列表中
not in 运算符可以判断某元素是否不存在于列表中
返回值为True 或 False
这两个运算符寻找的是单独元素,而非子序列
e.g.
1 | digits = [1,8,2,8] |
For Statement
执行过程
1 | for <name> in <expression>: |
- 执行
,该表达式必须是一个可迭代的量(如一个序列) - 对序列中的每个元素,按序进行如下操作:
- 在当前作用域中将每个元素赋给
- 执行
语句块中的语句
- 在当前作用域中将每个元素赋给
### 序列解包
e.g.寻找序列中相同元素的数对
pairs = [[1,2],[2,2],[3,2],[4,4]]
1 | for x, y in paris: |
该循环中,for循环会自动将paris中的内层列表中的两个元素赋给x,y两个变量
Ranges
range是表示连续整数的序列,通过给出起始与结束值获得范围内的整数
range包括起始值而不包括结束值
用法:range(<起始值(默认为0)>, <结束值>, [步长])
作用:
- 计算长度:结束值-起始值
- 选择元素:起始值+index
- 作为计数器:用_等当作name而不实际使用它
转换列表:使用list() - 列表构造函数
List Comprehension
列表中可以写一些语句来构造列表
e.g.1
1 | odds = [1,3,5,7,9] |
e.g.2 查找某个数的因数
1 | def divisors(n): |