在很多的入门书籍中,会针对列表,元组,字符串单独进行介绍,看完之后,你会发现有部分操作是相通的,比如根据下标进行访问的操作
>>> a = [1, 2, 3, 4, 5] >>> b = (1, 2, 3, 4, 5) >>> c = 'abcdef' >>> a[0] 1 >>> b[0] 1 >>> c[0] 'a' >>>具有相同的操作难道是巧合吗?其实不然,在python中,有一种类型,称之为sequence, 序列类型,常见的list, tuple, str, range都属于序列类型。这里有一个比较特殊的类别range, range函数用于创建数值列表,其返回值就是一个range类型, 示意如下
>>> type(range(10)) <class 'range'> >>> type('abc') <class 'str'> >>> type([1,2,3]) <class 'list'> >>> type((1,2,3)) <class 'tuple'>序列类型进一步分为以下两类
可变的序列不可变的序列元组, 字符串以及range类型是不可修改的,属于不可变的序列类型,list可以动态修改,属于可变的序列类型。
对于序列类型,有以下通用操作
1.下标访问操作python中下标从0开始计数,用方括号将下标括起来,用法如下
>>> a = [1, 2, 3, 4, 5] >>> a[0] 1 >>> a[-1] 5python还支持负下标操作,从序列末尾进行计数,最后一个元素为-1, 倒数第二个为-2, 依次类推。
2. 切片操作不要被高大上的名称所迷惑,切片其实就是根据多个下标,来选择子集,用法如下
>>> a = [1, 2, 3, 4, 5] # 下标1到下包3,包含下标1,不包含下标3 >>> a[1:3] [2, 3] # 1:4:2类似rang操作,第三个数字表示步长 >>> a[1:4:2] [2, 4] # 简写,从下标1到序列末尾 >>> a[1:] [2, 3, 4, 5] # 简写,从开头到下标-1处 >>> a[:-1] [1, 2, 3, 4]切片中区间为左闭右开,即包含起始下标,不包括终止下标,
3. len函数len函数返回序列对象的长度,用法如下
>>> len('abcdef') 6 >>> len(range(10)) 10 >>> len((1, 2, 3, 4, 5)) 54. max函数max函数返回数值序列的最大值,用法如下
>>> max((1, 2, 3, 4, 5)) 55.min函数min函数返回数值序列的最小值,用法如下
>>> min((1, 2, 3, 4, 5)) 16. sum函数sum函数返回数值序列的总和,用法如下
>>> sum((1, 2, 3, 4, 5)) 157. in操作符用于查看序列中是否包含特定元素,用法如下
>>> 1 in (1, 2, 3, 4, 5) True >>> 1 not in (1, 2, 3, 4, 5) False >>> 'a' in 'abcdef' True >>> 'a' not in 'abcdef' False8. +操作符将两个序列相连,用法如下
# 多个字符串相连 >>> 'abc' + 'def' 'abcdef' # 将多个列表合并成 >>> [1, 2, 3] + [4, 5] [1, 2, 3, 4, 5]9. *操作符将一个序列重复多次,用法如下
>>> 'abc' * 3 'abcabcabc' >>> (1, 2, 3) * 3 (1, 2, 3, 1, 2, 3, 1, 2, 3)10. count方法统计序列中某个元素出现的次数,用法如下
>>> 'abbc'.count('b') 2 >>> (1, 2, 3, 3, 5).count(3) 211. index方法返回序列中某个元素第一次出现的下标,用法如下
>>> 'abcdef'.index('b') 1 >>> 'abcdcef'.index('c') 2 >>> (1, 2, 3, 4, 5).index(1) 0 >>> (1, 2, 3, 4, 5).index(2) 1对于列表这种可变的序列类型,还拥有以下操作
1. 修改值# 根据下标修改对应的值 >>> a = [1, 2, 3, 4, 5] >>> a[0] = 2 >>> a [2, 2, 3, 4, 5] # 利用切片修改对应的值 >>> a = [1, 2, 3, 4, 5] >>> a[1:3] = [4, 5, 6] >>> a [1, 4, 5, 6, 4, 5]2. append 追加值>>> a = [1, 2 , 3, 4, 5] >>> a.append(6) >>> a [1, 2, 3, 4, 5, 6]3. pop 删除值# 默认删除最后一个元素 >>> a = [1, 2 , 3, 4, 5] >>> a.pop() 5 >>> a [1, 2, 3, 4] # 删除指定下标的元素 >>> a.pop(3) 4 >>> a [1, 2, 3] #4. remove删除值pop根据删除下标指定的值,remove直接删除对应的值,用法如下
>>> a = [1, 2, 3, 4, 5] >>> a.remove(2) >>> a [1, 3, 4, 5]5. del 删除值>>> a = [1, 2, 3, 4, 5] >>> del a[0] >>> a [2, 3, 4, 5] >>> a = [1, 2, 3, 4, 5] >>> del a[1:2] >>> a [1, 3, 4, 5]6. insert 插入元素在指定下标处,插入元素,用法如下
>>> a = [1, 2, 3, 4, 5] >>> a.insert(1, 2) >>> a [1, 2, 2, 3, 4, 5]7. extend将另一个list的元素追加到第一个list的末尾,用法如下
>>> a = [1, 2, 3] >>> b = [4, 5] >>> a.extend(b) >>> a [1, 2, 3, 4, 5]8. reverse将序列元素反向,用法如下
>>> a = [1, 2, 3, 4, 5] >>> a.reverse() >>> a [5, 4, 3, 2, 1]谨记list, tuple, str, range同为sequence类型,而sequence又分为可变和不可变两类。
---来自腾讯云社区的---生信修炼手册
微信扫一扫打赏
支付宝扫一扫打赏