序列通用操作

序列通用操作

序列类型有许多通用的操作,在各个知识点都有详细的介绍,下面将他们综合起来比较。

序列类型都可以使用操作符 + 进行拼接,使用 += 拼接并赋值(range 除外),但对于可变序列类型,使用 += 是原地修改:

a = [1,2]
print(id(a))
a += [3,4]
id(a), a
2612604344328





(2612604344328, [1, 2, 3, 4])
'12'+'34', [1,2]+[3,4], (1,2)+(3,4)
('1234', [1, 2, 3, 4], (1, 2, 3, 4))

序列类型都可以使用操作符 * 进行重复并拼接,使用 *= 拼接并赋值(range 除外),但对于可变序列类型,使用 *= 是原地修改:

'1'*2, 2*[1], (1,)*2
('11', [1, 1], (1, 1))
a = [1]
print(id(a))
a *= 2
id(a), a
2612603190024





(2612603190024, [1, 1])

序列类型都可以使用 * 进行拆包,拆包之后需要包含在列表,元组,集合中,或用于函数传参:

[*(1,2)], (*[1,2],), {*range(1,3)}
([1, 2], (1, 2), {1, 2})
print(*'123')
1 2 3

序列类型都可以使用索引或切片操作取值,但对于可变序列类型,还可以使用索引或切片操作进行内容的增、删、改:

a = '1234'
b = [1,2,3,4]
c = (1,2,3,4)
d = range(1,5)
a[0], b[0], c[0], d[0]
('1', 1, 1, 1)
a[1:3], b[1:3], c[1:3], d[1:3]
('23', [2, 3], (2, 3), range(2, 4))
b[1:3] = 'abc'
b
[1, 'a', 'b', 'c', 4]

序列类型都有方法 index 和 count,但字符串和字节串的 count 方法可以指定范围(具体详见各知识点的方法):

'1234'.index('23'),\
[1,2,3,4].index(2),\
range(1,4).index(2)
(1, 1, 1)
'1231'.count('1',1,3),\
(1,2,3,1).count(1)
(0, 2)
### Python 序列通用操作的学习教程 #### 什么是序列? 在 Python 中,序列是一组有序的对象集合。常见的内置序列类型包括字符串 (`str`)、列表 (`list`) 和元组 (`tuple`)[^1]。 #### 基本操作 以下是 Python 序列的一些常见通用操作: 1. **索引访问** 使用方括号 `[]` 可以通过索引来访问序列中的单个元素。索引从 0 开始计数。 ```python my_list = ['a', 'b', 'c'] first_element = my_list[0] # 获取第一个元素 'a' ``` 2. **切片操作** 切片是一种用于提取子序列操作方式。其语法为 `[start:end:step]`,其中: - `start` 表示起始位置(包含该位置); - `end` 表示结束位置(不包含该位置); - `step` 是步长,默认值为 1[^4]。 示例代码如下: ```python numbers = [0, 1, 2, 3, 4, 5] sub_numbers = numbers[1:4] # 结果为 [1, 2, 3] every_second = numbers[::2] # 结果为 [0, 2, 4] reversed_numbers = numbers[::-1] # 结果为 [5, 4, 3, 2, 1, 0] ``` 3. **长度计算** 使用内置函数 `len()` 来获取序列的总长度。 ```python text = "hello" length_of_text = len(text) # 返回 5 ``` 4. **成员检测** 使用关键字 `in` 或 `not in` 来判断某个对象是否存在于序列中。 ```python letters = ['a', 'b', 'c'] is_a_in_letters = 'a' in letters # True is_d_not_in_letters = 'd' not in letters # True ``` 5. **连接与重复** - 连接两个相同类型序列可以通过加法运算符 `+` 实现。 - 重复一个序列可以使用乘法运算符 `*`。 ```python list1 = [1, 2] list2 = [3, 4] combined_list = list1 + list2 # 结果为 [1, 2, 3, 4] repeated_list = list1 * 3 # 结果为 [1, 2, 1, 2, 1, 2] ``` 6. **迭代遍历** 使用 `for` 循环来逐一处理序列中的每一个元素。 ```python fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(fruit) ``` 7. **最小值与最大值** 函数 `min()` 和 `max()` 别返回序列中的最小值和最大值。 ```python nums = [5, 9, 1, 8] smallest_num = min(nums) # 返回 1 largest_num = max(nums) # 返回 9 ``` 8. **查找元素的位置** 方法 `.index(value)` 用来找到指定值首次出现的位置。 ```python languages = ['php', 'c#', 'java'] position = languages.index('java') # 返回 2 ``` #### 学习资源推荐 对于初学者来说,可以从官方文档入手学习更多细节[^1]。此外,还可以参考一些总结性的笔记材料[^2],这些资料通常会提供更全面的方法说明和实例演示。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值