第四节课:列表
一、特点:
1. 有序集合
2. 通过偏移量索引
2. 支持嵌套
3. 是可变的类型
a = [1,2, 3,4,5]
a[-1]
a = [[1,2],["a","b"]]
a[0] = [3,4]
1. 切片
a = [1,2,3,4,5,6,7]
正向切片
反向索引
默认索引
# 注意步骤长前面仍是冒号
a[0:4:1] # 正向
a[-1:-4:-1] # 反向
a[1::2] # 默认值为总长度
a[0::2]
二、添加操作
1. + 生成一个新的列表
2. Extend 接受参数并将该参数的每个元素添加到原有的列表中,原地修改列表,而不是新建列表
3. Append:添加任意对象到列表的末端
4. Insert: 插入任意对象到列表中,可以控制位置
a = [1,2,3]
b = [4,5,6]
a + b
a.extend(b)
三、列表的修改操作
修改列表本身只需要直接赋值操作即可
a = [1,2,3]
a[0] = 'haha'
四、删除操作
1. Del: 我们通过索引删除指定位置的元素
2. Remove:移除列表中指定值的第一个匹配值. 如果没有,则返回
3. Pop: 返回最后一个元素,并从列表中删除
a = [1,2,3,4,5,4]
del a[0]
a.del(a[0]) 错误
a.remove(4)
a.remove(6) 异常
a.pop()
五、成员关系
in not in 可以判断一个元素是否在列表里面
返回一个bool类型, 元素在列表里返回True, 否则返回False
六、列表推导式
[expr for iter_var in iterable]
首先迭代 iterable里面所有内容, 每一次迭代, 都把iterable 里相应内容放到iter_var中,表达式中应用iter_var生成一个列表.
[x+2 for x in range(1,11)]
range(1,11)
[expr for iter_var in iterable if cond_expr]
加入了判断语句,只有满足条件才把iterable中内容提取赋予 iter_var, 然后表达式中应用生成一个列表.
range(1,11,2)
[x for x in range(1,11) if x % 2 == 1]
七、排序翻转:sort reverse
这个方式直接修改原里列表. 他的返回值为none.
a = [11,2,34,128]
b = a.sort()
print a, b
c a.reverse()
print a, c