社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

python中的序列对象

生信修炼手册 • 3 年前 • 502 次点击  

欢迎关注”生信修炼手册”!


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

>>> 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))

>>> type('abc')

>>> type([1,2,3])

>>> type((1,2,3))

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

  1. 可变的序列

  2. 不可变的序列

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

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

1.下标访问操作

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

>>> a = [1, 2, 3, 4, 5]
>>> a[0]
1
>>> a[-1]
5

python还支持负下标操作,从序列末尾进行计数,最后一个元素为-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))
5

4. max函数

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

>>> max((1, 2, 3, 4, 5))
5

5.min函数

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

>>> min((1, 2, 3, 4, 5))
1

6. sum函数

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

>>> sum((1, 2, 3, 4, 5))
15

7. 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'
False

8. +操作符

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




    
# 多个字符串相连
>>> '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)
2

11. 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又分为可变和不可变两类。

·end·

—如果喜欢,快分享给你的朋友们吧—



原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!
本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。
  更多精彩



  写在最后


转发本文至朋友圈,后台私信截图即可加入生信交流群,和小伙伴一起学习交流。


扫描下方二维码,关注我们,解锁更多精彩内容!


一个只分享干货的

生信公众号


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/62452
 
502 次点击