前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中的序列对象

python中的序列对象

作者头像
生信修炼手册
发布2020-05-07 16:31:00
9580
发布2020-05-07 16:31:00
举报
文章被收录于专栏:生信修炼手册生信修炼手册

在很多的入门书籍中,会针对列表,元组,字符串单独进行介绍,看完之后,你会发现有部分操作是相通的,比如根据下标进行访问的操作

代码语言:javascript
复制
>>> 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类型, 示意如下

代码语言:javascript
复制
>>> type(range(10))
<class 'range'>
>>> type('abc')
<class 'str'>
>>> type([1,2,3])
<class 'list'>
>>> type((1,2,3))
<class 'tuple'>

序列类型进一步分为以下两类

  1. 可变的序列
  2. 不可变的序列

元组, 字符串以及range类型是不可修改的,属于不可变的序列类型,list可以动态修改,属于可变的序列类型。

对于序列类型,有以下通用操作

1.下标访问操作

python中下标从0开始计数,用方括号将下标括起来,用法如下

代码语言:javascript
复制
>>> a = [1, 2, 3, 4, 5]
>>> a[0]
1
>>> a[-1]
5

python还支持负下标操作,从序列末尾进行计数,最后一个元素为-1, 倒数第二个为-2, 依次类推。

2. 切片操作

不要被高大上的名称所迷惑,切片其实就是根据多个下标,来选择子集,用法如下

代码语言:javascript
复制
>>> 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函数返回序列对象的长度,用法如下

代码语言:javascript
复制
>>> len('abcdef')
6
>>> len(range(10))
10
>>> len((1, 2, 3, 4, 5))
5
4. max函数

max函数返回数值序列的最大值,用法如下

代码语言:javascript
复制
>>> max((1, 2, 3, 4, 5))
5
5.min函数

min函数返回数值序列的最小值,用法如下

代码语言:javascript
复制
>>> min((1, 2, 3, 4, 5))
1
6. sum函数

sum函数返回数值序列的总和,用法如下

代码语言:javascript
复制
>>> sum((1, 2, 3, 4, 5))
15
7. in操作符

用于查看序列中是否包含特定元素,用法如下

代码语言:javascript
复制
>>> 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'
False
8. +操作符

将两个序列相连,用法如下

代码语言:javascript
复制
# 多个字符串相连
>>> 'abc' + 'def'
'abcdef'
# 将多个列表合并成
>>> [1, 2, 3] + [4, 5]
[1, 2, 3, 4, 5]
9. *操作符

将一个序列重复多次,用法如下

代码语言:javascript
复制
>>> 'abc' * 3
'abcabcabc'
>>> (1, 2, 3) * 3
(1, 2, 3, 1, 2, 3, 1, 2, 3)
10. count方法

统计序列中某个元素出现的次数,用法如下

代码语言:javascript
复制
>>> 'abbc'.count('b')
2
>>> (1, 2, 3, 3, 5).count(3)
2
11. index方法

返回序列中某个元素第一次出现的下标,用法如下

代码语言:javascript
复制
>>> '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. 修改值
代码语言:javascript
复制
# 根据下标修改对应的值
>>> 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 追加值
代码语言:javascript
复制
>>> a = [1, 2 , 3, 4, 5]
>>> a.append(6)
>>> a
[1, 2, 3, 4, 5, 6]
3. pop 删除值
代码语言:javascript
复制
# 默认删除最后一个元素
>>> 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直接删除对应的值,用法如下

代码语言:javascript
复制
>>> a = [1, 2, 3, 4, 5]
>>> a.remove(2)
>>> a
[1, 3, 4, 5]
5. del 删除值
代码语言:javascript
复制
>>> 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 插入元素

在指定下标处,插入元素,用法如下

代码语言:javascript
复制
>>> a = [1, 2, 3, 4, 5]
>>> a.insert(1, 2)
>>> a
[1, 2, 2, 3, 4, 5]
7. extend

将另一个list的元素追加到第一个list的末尾,用法如下

代码语言:javascript
复制
>>> a = [1, 2, 3]
>>> b = [4, 5]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5]
8. reverse

将序列元素反向,用法如下

代码语言:javascript
复制
>>> a = [1, 2, 3, 4, 5]
>>> a.reverse()
>>> a
[5, 4, 3, 2, 1]

谨记list, tuple, str, range同为sequence类型,而sequence又分为可变和不可变两类。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.下标访问操作
  • 2. 切片操作
  • 3. len函数
  • 4. max函数
  • 5.min函数
  • 6. sum函数
  • 7. in操作符
  • 8. +操作符
  • 9. *操作符
  • 10. count方法
  • 11. index方法
  • 1. 修改值
  • 2. append 追加值
  • 3. pop 删除值
  • 4. remove删除值
  • 5. del 删除值
  • 6. insert 插入元素
  • 7. extend
  • 8. reverse
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档