列表:一个打了激素的数组
列表类似于数组,但是比数组更加强大,它能 同时存放不同类型的变量
创建列表
只需使用 方括号[] 将数据包裹起来(数据之间用逗号隔开)
1 | test = [1,2,3,4,5] |
增删改查
增
- append():将元素添加在列表末尾
- extend():使用一个列表来扩充另一个列表
- insert():第一个参数指定待插入位置(索引值),第二个参数是待插入的元素
删
- remove():指定一个待删除元素,不需要知道位置
- pop():将指定元素取出并删除,参数是一个索引值(不带参数的话,默认弹出最后一个)
- del:Python中的del关键词,可以直接删除列表或列表中的某个元素
改
- 使用一个temp变量作为中间值,交换元素
- 偷懒方法
1
2
3
4
5eggs[1], eggs[2] = eggs[2], eggs[1]
# 等同于
# temp = eggs[1]
# eggs[1] = eggs[2]
# eggs[2] = temp
查
通过索引值直接获取,与数组相同
- 当索引值为负数时,表示从列表的末尾反向索引
切片(slice)
取出列表的部分元素,用冒号隔开两个索引值,即可返回一个切片(新列表)
1 | list2 = list[2:5] |
- 如果索引值全部为空,则返回列表的拷贝
步长
切片可以接受第三个参数:步长(默认值1)
- 可以设置步长为-1,逆置列表
常用操作符
- 比较操作符:从第一个元素开始比较,只要有一个赢了,就算整个列表赢了,与字符串的比较同理
- 连接操作符(+):将多个列表对象来合并起来
- 重复操作符(*):重复列表
- 成员关系操作符:in 和 not in(只能判断一个层次的成员关系)
元组:戴上了枷锁的列表
元组(tuple):只读,不可写的列表
创建
使用 小括号() 创建,元素用逗号隔开
- 其实小括号是可以不要的,关键是逗号,小括号只是补充
1
2
3tuple1 = (520,)
tuple2 = 520,
# tuple1和tuple2是同样的元组
访问
直接使用下标访问,或者使用切片
更新和删除
- 元组并不能改变,但是我们可以创建一个新的同名元组,来起到更新和删除的功能
- 若要删除元组,使用 del 即可
字符串
字符串在基础知识中已经学了不少,这里只是加入来学习序列的同一性
- 字符串和元组一样,不能修改,只能通过新建同名字符串
切片
字符串可以使用索引值访问,当然也可以使用切片功能
内置函数
- count(sub,[start[,end]]):计算sub参数在字符串中出现的次数,可选参数start和end
- find(sub[,start[,end]]) 和 index(sub[,start[,end]]):都是寻找sub第一次出现的位置,返回索引值
- 找不到的话find返回-1;index抛出异常
- replace(old,new[,count]):将原字符串中的old替换成new,可以指定次数
- split(seq=None, maxsplit=-1):拆分字符串,返回一个字符串列表
- join(iterable):拼接字符串
- 使用方法:",".join(elems)。因为join的参数是一切可迭代对象,如果将其写在左侧,那就必须对所有这些对象新建join方法,因而将字符串写在前面。
格式化
format()
举例即可:
1 | "{0} {1} make a {2}".format("I", "will", "difference") |
%
字符串独享的 格式化操作符(%)
- 当 % 出现在字符中,它表示格式化操作符
1 | '%c%c' % (65, 97) |
序列
列表,元组和字符串都是序列,它们有很多共同点:
- 都可以通过索引值访问(默认为0,也支持负数索引)
- 可以使用切片
- 有很多共同操作符(重复、拼接、成员关系)
常用BIF
- list([iterable]):将一个可迭代对象转换成列表
- 若参数为空,则创建一个空列表
- tuple([iterable]):将一个可迭代对象转换成元组
- str(obj):将obj对象转换成字符串
- len(sub):返回sub参数的长度
- max():返回序列中的最大值
- min():返回序列中的最小值
- sum(iterable[,start]):从start为基值,加上序列所有元素和
- sorted(iterable, key=None, reverse=False):返回一个排序的列表,而内建sort()方法是原地排序
- reversed(sequence):返回逆序的序列,内建方法是原地翻转
- 也可以使用逆向切片实现:seq[::-1]
- enumerate(iterable):生成一个由二元组构成的可迭代对象,每个二元组由可迭代的索引号及对应的元素组成
- zip(iter1[,iter2[…]]):返回由各个可迭代参数共同组成的多元组序列