列举3个python语言中重要的序列类型_Python:Python语言中的序列

1. Python 序列分类

1.1. 按存储数据类型分类

容器序列,

-- 定义:容器序列可以存放不同类型的数据,即可以存放任意类型对象的引用;

-- 包括:list,tuple,deque;

扁平序列

-- 定义:扁平序列只能容纳一种类型,也就是说其存放的是值而不是引用,扁平序列其实是一段连续的内存空间,由此可见扁平序列其实更加紧凑。但是它里面只能存放诸如字符、字节和数值这种基础类型。

-- 包括:str,bytes,bytearray,array.array;

1.2. 按是否可变分类

可变序列

-- list,deque,bytearray,array;

不可变序列

-- str,tuple,bytes;

2. append & extend

append

-- append 对不同类型的序列进行新增操作,是把新增序列作为一个元素添入;

>>> a = [1, 2, 3]

>>> b = (4, 5)

>>>

>>> a.append(b)

>>> print(a)

[1, 2, 3, (4, 5)] # 注意:(4, 5) 是一个元组

extend

-- extend 对不同类型的序列进行新增操作,会先 for 循环遍历新增序列中的元素,然后把这些元素逐个添入;

>>> a = [1, 2, 3]

>>> b = (4, 5)

>>>

>>> a.extend(b)

>>> print(a)

[1, 2, 3, 4, 5] # 注意:4, 5 作为单独的元素出现在新列表

3. 序列切片

列表全部元素组成新列表

>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>>

>>> print(sample_list[::])

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

列表全部元素组成 倒序 新列表

>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>>

>>> print(sample_list[::-1])

[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

奇数位 元素组成新列表

>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>>

>>> print(sample_list[::2]) # 2 为步长,表示每隔一位取一个元素

[1, 3, 5, 7, 9]

偶数位 元素组成新列表

>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>>

>>> print(sample_list[1::2])

[2, 4, 6, 8, 10]

指定起始结束位置 截取列表

>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>>

>>> print(sample_list[3:6])

[4, 5, 6]

切片 结束位大于列表长度

>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>>

>>> print(sample_list[0:100])

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

切片 初始位大于列表长度

>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>>

>>> print(sample_list[100:])

[]

尾部增加 新元素

>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> sample_list[len(sample_list):] = ["new"]

>>> print(sample_list)

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'new']

头部增加 新元素

>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> sample_list[:0] = ["new_1", "new_2"]

>>> print(sample_list)

['new_1', 'new_2', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

指定位置 增加元素

>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> sample_list[3:3] = ["new_1"]

>>> print(sample_list)

[1, 2, 3, 'new_1', 4, 5, 6, 7, 8, 9, 10]

替换 指定起始位置 多位元素,= 号两边元素 数量相同

>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> sample_list[:3] = ["new_1", "new_2", "new_3"]

>>> print(sample_list)

['new_1', 'new_2', 'new_3', 4, 5, 6, 7, 8, 9, 10]

替换 指定起始位置 多位元素,= 号两边元素 数量不同

>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> sample_list[:3] = ["new_1", "new_2"] # =号左侧 3 个元素,=号右侧 2 个元素

>>> print(sample_list)

['new_1', 'new_2', 4, 5, 6, 7, 8, 9, 10] # 注意:3 没有了,但并没有被替换成新元素

奇数位 替换 同一元素,= 号两边元素 数量相同

>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> sample_list[::2] = [0] * 5

>>> print(sample_list)

[0, 2, 0, 4, 0, 6, 0, 8, 0, 10]

奇数位 替换 同一元素,= 号两边元素 数量不同,会报错!

>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> sample_list[::2] = [0] * 3 # = 号左侧 5 个元素,=号右侧 3 个元素

Traceback (most recent call last):

File "", line 1, in

ValueError: attempt to assign sequence of size 3 to extended slice of size 5

奇数位 替换 不同元素,= 号两边元素 数量相同

>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> sample_list[::2] = ["a", "b", "c", "d", "e"]

>>> print(sample_list)

['a', 2, 'b', 4, 'c', 6, 'd', 8, 'e', 10]

奇数位 替换 不同元素,= 号两边元素 数量不同

>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> sample_list[::2] = ["a", "b", "c"] # = 号左侧 5 个元素,=号右侧 3 个元素

Traceback (most recent call last):

File "", line 1, in

ValueError: attempt to assign sequence of size 3 to extended slice of size 5

删除指定起始位置 元素

>>> sample_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> sample_list[:3] = [] # 删除前三位

>>> print(sample_list)

[4, 5, 6, 7, 8, 9, 10]

4. array 数组

与 list 不同,array 只能存放指定的数据类型;

array 的性能要比 list 高很多;

【TODO】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值