python之切片操作符(Slice)
字符串、列表、元组在python中都符合“序列”这一特征,只要符合这一特征的变量我们都可以用切片(slice)去存取它们的任意部分。我们可以把序列想像成一个队列,我可能需要前面三位、后面三位、或从第三位后的四位、或隔一个取一个等,我们用切片操作符来实现上述要求。
切片操作符在python中的原型是
[start:stop:step]
即:[开始索引:结束索引:步长值]
开始索引:同其它语言一样,从0开始。序列从左向右方向中,第一个值的索引为0,最后一个为-1
结束索引:切片操作符将取到该索引为止,不包含该索引的值。
步长值:默认是一个接着一个切取,如果为2,则表示进行隔一取一操作。步长值为正时表示从左向右取,如果为负,则表示从右向左取。步长值不能为0
假设:
li = [1,2,3,4,5,6,7]
print li[2] #输出3,因为索引为2的值为3
print li[2:4] #输出[3,4]。从索引2开始取,到索引为4的5为止(不含5)
print li[-1] #输出7,反向取第一个
print li[-1:-5:2] #输出空列表[],从反向第1个向反向第5个取,但步长为2,表示正向相隔二个取值。
print li[-1:-5:-2] #输出[7,5]
有时我们可以省略开始索引、结束索引,如:
li = [1,2,3,4,5,6,7]
print li[1:] #输出[2,3,4,5,6,7],省略终止索引,表示取起始索引之后的所有值,等效于li[1:len(li)]
print li[:3] #输出[1,2,3],省略起始索引,表示从0开始取,等效于li[0:3]
print li[:] #输出[1,2,3,4,5,6,7],省略起始索引、终止索引、步长值表示取全部,等效于li[0:len(li):1]
print li[::] #输出[1,2,3,4,5,6,7],省略起始索引、终止索引、步长值表示取全部,等效于li[0:len(li):1]
print li[::-1] #输出[7,6,5,4,3,2,1],省略起始索引、终止索引,步长值为-1,表示反向获取
所以,不要为str类没有substring方法而感到困惑,用切片操作符吧。
分享到:
相关推荐
PYTHON学习教程资源:切片代码练习 本文档详细介绍了PYTHON中的切片操作, Including 切片的基本概念、切片的使用方法、...切片操作符是PYTHON中的一种非常重要的数据结构,掌握它可以帮助您更好地编写PYTHON程序。
以上就是关于Python列表list操作符的详细讲解,包括标准类型操作符、切片、连接字符、列表解析和重复操作。理解并熟练运用这些操作符,能帮助开发者更高效地处理列表数据,提高代码的简洁性和效率。在实际编程中,...
键查找操作符是唯一仅用于字典类型的操作符,它和序列类型里单一元素的切片(slice)操作符很相象。对序列类型来说,用索引做唯一参数或下标(subscript)以获取一个序列中某个元素的值。而对字典类型来说,是用
### 详解Python中的`__getitem__`方法与`slice`对象的切片操作 在Python编程语言中,自定义类可以模拟内置类型的多种行为。例如,我们可以通过实现`__getitem__`方法使得自定义类的对象能够支持索引访问。此外,...
解压缩则是`zip`函数的逆过程,可以使用`*`操作符来实现: ```python unzipped = zip(*zipped) # [(1, 2, 3), ('a', 'b', 'c')] ``` 8. 列表相邻元素压缩器 使用`itertools`模块中的`zip`函数可以创建一个列表相邻...
### 详解Python进阶之切片的误区与高级用法 #### 一、切片的基础用法 在Python中,切片是一种强大的工具,能够帮助我们高效地处理各种序列类型,比如列表、元组和字符串等。理解切片的基础用法是掌握其高级功能的...
集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数(大小), 用 for 循环迭代集合的成员。但是因为集合本身是无序的,不可以为集合创建索引或执行切片(slice)操作,也没有键(keys)可用来获取集合中...
在处理复杂的切片操作时,通过创建`slice`对象并为其赋值,可以清晰地表明切片的含义。比如在记录中提取价格和数量: ```python record = '..........19.6..........100..........' price = slice(10, 14) count ...
本篇文章将详细介绍如何通过切片操作实现字符串与列表之间的转换,以及如何对列表进行逆序操作。 1. **字符串转列表**: 在Python中,我们可以使用`split()`函数将一个字符串转换为列表。`split()`函数根据指定的...
- **operator**:操作符,用于指定数值运算或其他操作。 - **union**:并集,集合之间的并操作。 - **initialize**:初始化,为变量分配初始值。 - **instance**:同上所述,实例。 - **class**:类,对象的模板。 -...
- **slice()**: 创建一个切片对象。 - **sorted()**: 对可迭代对象进行排序。 - **staticmethod()**: 将方法转换为静态方法。 - **str()**: 将值转换为字符串。 - **sum()**: 计算可迭代对象的总和。 - **super()**:...
字符截取即字符串切片(slice),Python中的字符串切片功能非常强大,可以通过不同的索引来获取字符串中的子串。 - **获取指定范围内的子串**: ```python str = "0123456789" print(str[0:3]) # 输出:012 ``` ...
2. **三元操作符**:Python中的三元操作符是`条件表达式`,如`small = x if x ,它根据条件`x 的结果来决定赋值`x`或`y`给`small`。 3. **循环结构**: - `while`循环:当给定的条件为真时,重复执行循环体内的...
- `%`操作符。 - `str.format()`方法。 - f-string (Python 3.6+). #### 对list去重 - 使用集合`set()`。 #### 打乱列表元素 - 使用`random.shuffle()`函数。 #### 字典操作`del`与`pop` - `del`: 删除字典中的...
Python的字符串格式化可以使用`%`操作符或`format()`函数。`%`操作符类似于C语言的printf风格,如`"%s is %d years old." % ("Alice", 25)`,而`format()`函数提供更灵活的格式化方式,如`"{0} is {1} years old."....
57. `slice()`: 创建切片对象,用于访问序列的子序列。 58. `sorted()`: 对可迭代对象进行排序,返回排序后的列表。 59. `@staticmethod()`: 把方法转换为静态方法,与类无关。 60. `str()`: 创建字符串对象,字符串...
* `slice` 字符串切片:标准格式:`[起始偏移量:start:终止偏移量:end:步长:step]` * `split()` 分割:可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中) * `join()` 合并:将一系列子字符串 * 常用...
然而,Go标准库并没有内置一个类似Python中的`in`操作符,用于检查某个元素是否存在于切片中。这主要是由于Go的设计哲学,即保持语言简洁,避免不必要的功能重叠。尽管如此,我们可以自定义函数来实现类似的功能。 ...