Python数据类型——序列 (sequence)

目录

1 概述

2 基本操作

2.1 索引 

2.2 切片 

2.3 加 

2.4 乘


1 概述

在前面,我们已经对Python学习做了系统的知识梳理(Python思维导图),我们接下来把知识点分节进行细讲。这一节,我们讲解序列。

在介绍 Python 的常用数据类型之前,我们先看看 Python 最基本的数据结构 -——序列(sequence)。序列的一个特点就是根据索引(index,即元素的位置)来获取序列中的元素,第一个索引是 0,第二 个索引是 1,以此类推。

所有序列类型都可以进行某些通用的操作,比如:
索引( indexing
分片( sliceing
迭代( iteration
加( adding
乘( multiplying
除了上面这些,我们还可以检查某个元素是否属于序列的成员,计算序列的长度等等。
重点讲索引和切片。

2 基本操作

2.1 索引 

序列中的元素可以通过索引获取,索引从 0 开始。看看下面的例子:
>>> nums = [1, 2, 3, 4, 5] # 列表
>>> nums[0] 
1 
>>> nums[1]
2 
>>> nums[-1] # 索引 -1 表示最后一个元素 
5 
>>> s = 'abcdef' # 字符串 
>>> s[0] 
'a' 
>>> s[1] 
'b' 
>>> 
>>> a = (1, 2, 3) # 元组 
>>> a[0] 
 1 
 >>> a[1] 
 2
注意到 -1 则代表序列的最后一个元素, -2 代表倒数第二个元素,以此类推。

2.2 切片 

索引用于获取序列中的单个元素,而分片则用于获取序列的部分元素。分片操作需要提供两个索引作为 边界,中间用冒号相隔,比如:
>>> numbers = [1, 2, 3, 4, 5, 6] 
>>> numbers[0:2] # 列表分片 
[1, 2] 
>>> numbers[2:5] 
[3, 4, 5] 
>>> s = 'hello, world' # 字符串分片 
>>> s[0:5] 
'hello' 
>>> a = (2, 4, 6, 8, 10) # 元组分片 
>>> a[2:4] 
(6, 8)
这里需要特别注意的是,分片有两个索引,第 1 个索引的元素是包含在内的,而第 2 个元素的索引 则不包含在内,也就是说,numbers[2:5] 获取的是 numbers[2], numbers[3], numbers[4],没有包括 numbers[5]

下面列举使用分片的一些技巧。  

(1)访问最后几个元素
(2)使用步长

(1)访问最后几个元素 

假设需要访问序列的最后 3 个元素,我们当然可以像下面这样做:
>>> numbers = [1, 2, 3, 4, 5, 6] 
>>> numbers[3:6] 
[4, 5, 6]
有没有更简洁的方法呢?想到可以使用负数形式的索引,你可能会尝试这样做:
>>> numbers = [1, 2, 3, 4, 5, 6] 
>>> numbers[-3:-1] # 实际取出的是 numbers[-3], numbers[-2] 
[4, 5] 
>>> numbers[-3:0] # 左边索引的元素比右边索引出现得晚,返回空序列 
[]
上面的两种使用方式并不能正确获取序列的最后 3 个元素, Python 提供了一个捷径
(也就是说,如果希望分片包含最后一个元素,可将第 2 个索引置为空)
>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8] 
>>> numbers[-3:] 
[6, 7, 8] 
>>> numbers[5:] 
[6, 7, 8]

如果要复制整个序列,可以将两个索引都置为空:

>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8] 
>>> nums = numbers[:] 
>>> nums 
[1, 2, 3, 4, 5, 6, 7, 8]

(2)使用步长 

使用分片的时候,步长默认是 1 ,即逐个访问,我们也可以自定义步长,比如:
>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8] 
>>> numbers[0:4] 
[1, 2, 3, 4] 
>>> numbers[0:4:1] # 步长为 1,不写也可以,默认为 1 
[1, 2, 3, 4] 
>>> numbers[0:4:2] # 步长为 2,取出 numbers[0], numbers[2] 
[1, 3]
>>> numbers[::3] # 等价于 numbers[0:8:3],取出索引为 0, 3, 6 的元素 
[1, 4, 7]
另外,步长也可以是负数,表示从右到左取元素:
>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8] 
>>> numbers[0:4:-1] 
[] 
>>> numbers[4:0:-1] # 取出索引为 4, 3, 2, 1 的元素 
[5, 4, 3, 2] 
>>> numbers[4:0:-2] # 取出索引为 4, 2 的元素 
[5, 3] 
>>> numbers[::-1] # 从右到左取出所有元素 
[8, 7, 6, 5, 4, 3, 2, 1] 
>>> numbers[::-2] # 取出索引为 7, 5, 3, 1 的元素 
[8, 6, 4, 2] 
>>> numbers[6::-2] # 取出索引为 6, 4, 2, 0 的元素 
[7, 5, 3, 1] 
>>> numbers[:6:-2] # 取出索引为 7 的元素 
[8]
这里总结一下使用分片操作的一些方法, 分片的使用形式是
# 左索引:右索引:步长 
left_index:right_index:step
要牢牢记住的是
左边索引的元素包括在结果之中,右边索引的元素不包括在结果之中;
当使用一个负数作为步长时,必须让左边索引大于右边索引;
对正数步长,从左向右取元素;对负数步长,从右向左取元素;

2.3 加 

序列可以进行「加法」操作,如下:
>>> [1, 2, 3] + [4, 5, 6] # 「加法」效果其实就是连接在一起 
[1, 2, 3, 4, 5, 6] 
>>> (1, 2, 3) + (4, 5, 6) 
(1, 2, 3, 4, 5, 6) 
>>> 'hello, ' + 'world!'
'hello, world!' 
>>> [1, 2, 3] + 'abc' 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
TypeError: can only concatenate list (not "str") to list
#这里需要注意的是:两种相同类型的序列才能「加法」操作。

2.4 乘

序列可以进行「乘法」操作,比如: 

>>> 'abc' * 3 
'abcabcabc' 
>>> [0] * 3 
[0, 0, 0] 
>>> [1, 2, 3] * 3 
[1, 2, 3, 1, 2, 3, 1, 2, 3]
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: 在 Python 中,我们有如下几种基本数据类型: - 整型 (int):表示整数,如 1、2、3 等。 - 浮点型 (float):表示小数,如 1.23、3.14 等。 - 布尔型 (bool):表示逻辑值,True 或 False。 - 字符串 (str):表示文本,使用单引号或双引号括起来,如 'hello' 或 "world"。 还有一些高级数据类型: - 列表 (list):表示一个有序的值序列,使用方括号括起来,如 [1, 2, 3]。 - 元组 (tuple):表示一个不可变的值序列,使用圆括号括起来,如 (1, 2, 3)。 - 字典 (dict):表示一组键值对,使用花括号括起来,如 {'name': 'Alice', 'age': 20}。 - 集合 (set):表示一组无序的唯一值,使用花括号括起来,如 {1, 2, 3}。 以上就是 Python 中的数据类型。 ### 回答2: Python是一种高级编程语言,支持各种不同的数据类型,例如整数(int)、浮点数(float)、字符串(str)、布尔值(bool)、列表(list)、元组(tuple)、字典(dict)等。 整数(int)是表示整数值的数据类型,可以进行基本的算术运算,如加减乘除等。 浮点数(float)是表示实数值的数据类型,可以包含小数部分,也可以进行各种数学运算。 字符串(str)是表示文本类型的数据类型,用单引号或双引号括起来,可以进行字符串的拼接、截取、替换等操作。 布尔值(bool)是表示真假值的数据类型,只有两个取值:True(真)和False(假),用于条件判断和逻辑运算。 列表(list)是一种有序的可变容器,可以存储多个不同类型的元素,通过下标访问和修改其中的元素,也可以进行增加、删除、切片等操作。 元组(tuple)是一种有序的不可变容器,类似于列表,但是不可以修改其中的元素,可以通过下标访问。 字典(dict)是一种无序的可变容器,存储键值对(key-value)的数据类型,通过键来访问对应的值,可以进行增加、删除、修改、查找等操作。 除了以上常见的数据类型Python还支持更多的扩展数据类型,如集合(set)、序列sequence)等,可以根据需求选择合适的数据类型来处理不同的数据。总之,Python的丰富的数据类型使得它具有广泛的应用领域,能够应对各种不同的编程任务。 ### 回答3: Python是一种高级编程语言,它具有丰富的数据类型,可以灵活地处理各种类型的数据。以下是Python中常见的数据类型: 1. 整型(int):用于表示整数,例如1、2、-3等。 2. 浮点型(float):用于表示带有小数点的数值,例如3.14、-0.5等。 3. 字符串(str):用于表示文本数据,例如"Hello, World!"、"Python编程"等。字符串可以使用单引号或双引号括起来。 4. 布尔型(bool):用于表示真值,只有两个值True和False,用于逻辑运算。 5. 列表(list):用于存储多个元素的有序集合,元素可以是不同的数据类型,例如[1, 2, 3]、["apple", "banana", "orange"]等。列表可以进行增删改查等操作。 6. 元组(tuple):与列表类似,用于存储多个元素的有序集合,但是元组的元素不可修改,例如(1, 2, 3)、("apple", "banana", "orange")等。 7. 字典(dict):用于存储键值对的无序集合,键和值之间使用冒号分隔,不同的键值对使用逗号分隔,例如{"name": "Tom", "age": 18}等。可以根据键来访问对应的值。 8. 集合(set):用于存储不重复元素的无序集合,可以执行交集、并集、差集等操作,例如{1, 2, 3}、{"apple", "banana", "orange"}等。 9. 字节(bytes):用于表示二进制数据,例如b'hello'、b'\x00\xFF'等。字节数据在处理网络数据、文件读写等方面很常见。 这些数据类型Python中非常有用,开发者可以根据具体的需求选择合适的数据类型来存储和处理数据。另外,Python还支持动态类型,即变量的数据类型可以在运行时发生改变,增加了灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荔枝科研社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值