关于python序列对象浅谈

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

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

                                                                ·end·

来源:微点阅读  https://www.weidianyuedu.com

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值