目录:
1.python里的索引
2.python中索引切片的用法
3.python 索引和切片区别
4.python中索引和切片的结果有什么不同
5.python中索引与切片的结果有什么不同
6.python 切片和索引的注意
7.python中的切片索引的代码
8.python中索引怎么用
9.python中的索引规则
10.python中索引的概念
1.python里的索引
磐创AI分享作者 | Giorgos Myrianthous编译 | VK来源 | Towards Data Science
2.python中索引切片的用法
在Python中,像字符串或列表这样的有序序列的元素可以通过它们的索引单独访问这可以通过提供我们希望从序列中提取的元素的数字索引来实现另外,Python支持切片,这是一个特性,可以让我们提取原始sequence对象的子集。
3.python 索引和切片区别
在本文中,我们将探讨索引和切片是如何工作的,以及如何使用它们来编写更干净、更具python风格的代码索引与大多数编程语言一样,Python偏移量从位置0开始,在位置N-1结束,其中N被定义为序列的总长度。
4.python中索引和切片的结果有什么不同
例如,字符串Hello的总长度等于5,每个字符都可以通过索引0到4进行访问,如下图所示:
5.python中索引与切片的结果有什么不同
现在,你可以通过编程方式访问字符串中的各个字符,方法是提供要获取的相应偏移量(用方括号括起来):>>> my_string = Hello>>> print(my_string[0])H>>> print(my_string[
6.python 切片和索引的注意
2])l>>> print(my_string[3])l同样重要的是要知道,当你尝试访问大于序列长度(减1)的偏移量时,Python将抛出一个IndexError,通知你请求的偏移量超出范围:>>> my_string[
7.python中的切片索引的代码
5]Traceback (most recent call last): File “”, line 1, in IndexError: string index out of range
8.python中索引怎么用
还可以通过提供一个负索引来访问元素,该索引基本上对应于从序列右侧开始的索引。最后一项可以通过-1访问,倒数第二项可以通过-2访问,依此类推
9.python中的索引规则
从技术上讲,当使用负偏移量时,Python会将该偏移量添加到序列的长度中,以便推断准确的位置例如,假设我们要使用负偏移量从字符串my_string = Hello’中提取字符e现在表达式my_string[-4]基本上将被翻译成my_string[len(my_string) – 4],它相当于my_string[5 – 4]和my_string[1],最终为我们提供所需的输出:。
10.python中索引的概念
>>> my_string[-4]e切片切片是一种索引形式,它允许我们推断原始序列的整个(子)部分,而不仅仅是单个项要在Python中对序列执行切片,需要提供两个由冒号分隔的偏移量,尽管在某些情况下可以只定义其中一个,甚至不定义(下面将讨论更多关于这些情况的内容)。
第一个偏移量表示起点并包含在内,而第二个偏移量表示终点,但与起点偏移量不同,它不包含在内my_string[start:end]因此,在执行切片时,Python将返回一个新对象,其中包含从下索引开始到上索引少一个位置的所有元素。
作为一个例子,考虑一个用例,其中我们需要获取字符串的前两个元素:>>> my_string[0:2]He正如我已经提到的,2个位置都提供并不是强制性的如果忽略起始偏移量,则其值将默认为0另一方面,如果不提供结束偏移量,则其默认值将等于序列的长度。
实际上有三种不同的情况,如下所示:my_string[0:] # 忽略终点my_string[:-1] # 忽略起点my_string[:] # 都忽略忽略终点偏移当我们想切掉前导文本时,第一个符号通常很有用。
假设我们想要得到字符串的第一个字符以外的所有字符我们可以使用以下符号>>> my_string = Hello>>> my_string[1:]ello正如我们已经提到的,当结束偏移量被忽略时,默认是序列的长度:
>>> my_string[1:] == my_string[1:len(my_string)]True忽略起始偏移假设我们现在只需要字符串的第一个字符在这种情况下,忽略起始偏移量将起到以下作用:>>> my_string = 。
Hello>>> my_string[:-1]Hell如果跳过下限,则其值将默认为0:>>> my_string[:-1] == my_string[0:-1]True忽略两个偏移Python中的切片表示法允许我们省略起始偏移和结束偏移。
>>> my_string = Hello>>> my_string[:] == my_string[0:len(my_string)]True如果忽略下限和上限,则默认值分别为0和len(序列),你可能想知道这是否有帮助或用处。
好吧,这是一种快速复制对象的方法,如下所示>>> my_string = Hello>>> my_string_copy = my_string[:]请注意,当此切片技术将生成一个不同的对象时,该对象将被分配到不同的内存位置。
这对字符串之类的不可变对象类型没有任何区别,但是在处理列表之类的可变对象类型时,注意这一点非常重要扩展切片Python中的切片表达式附带了第三个索引,该索引是可选的,指定时用作步骤显然,当省略step值时,它默认为1,这意味着请求的sequence子部分中的任何元素都不会被跳过。
符号如下所示[start:end:step]例如,假设我们有一个字符串,其中包含字母表中的字母,我们希望从位于位置1和19的字母中提取其中的所有其他项,:>>> import string>>> my_string = string.ascii_lowercase
# abcdefg…>>> my_string[1:20:1]bdfhjlnprt这种符号可以用来代替列表生成式例如,假设我们想要得到一个列表中所有具有偶数索引的元素实现这一点的列表生成式是>>> my_list = [。
100, 400, 34, 179, 0, 89, 121]>>> [value for index, value in enumerate(my_list) if index % 2 == 0][100
, 34, 0, 121]在这种情况下,切片表示法可以使我们的代码更简单,可读性更高:>>> my_list = [100, 400, 34, 179, 0, 89, 121]>>> my_list[::
2][100, 34, 0, 121]与开始偏移和结束偏移一样,步长索引可以是负数从技术上讲,当我们想要反转有序序列中元素的顺序时,这是很有用的>>> my_string = Hello>>> my_string[::。
-1]olleH换句话说,当应用负步幅索引时,起始偏移和结束偏移的效果是相反的为了弄清楚这一点,让我们跳到另一个例子中,我们实际上定义了所有三个可能的偏移量>>> import string>>> my_string = string.ascii_lowercase 。
# abcdefg…>>> my_string[20:10:-1]utsrqponml在上面的例子中,我们基本上按照相反的顺序从索引11到20创建一个新字符串结论在本文中,我们探讨了在Python中索引和切片是如何工作的。
这两种符号在大多数Python应用程序中都被广泛使用,因此你需要确保了解它们是如何工作的索引第一项从偏移量0开始最后一项结束于偏移长度len(my_sequence) – 1负指数表示计数将向后开始从本质上讲,它被添加到序列的长度中。
例如,my_string[-1]转换为my_string[len(my_string) – 1]切片起始索引(下限)包含在内结束索引(上限)不包含在内当忽略起始索引时,它默认为0如果省略结束索引,则默认为序列的长度
如果省略起始索引和结束索引,则会创建原始对象的副本-my_string[:]第三个索引表示步幅省略步幅索引时,默认为1(即不跳过任何元素)负步幅索引可以帮助我们创建反向序列(例如,my_string[::-1])
用SwiftUI实现数据可视化:饼图2021-04-27
使用堆栈回归器改善预测模型的得分2021-04-25
清理数据的重要性2021-04-24
✄————————————————看到这里,说明你喜欢这篇文章,请点击「在看」或顺手「转发」「点赞」欢迎微信搜索「panchuangxx」,添加小编
磐小小仙微信,每日朋友圈更新一篇高质量推文(无广告),为您提供更多精彩内容。▼ ▼ 扫描二维码添加小编 ▼▼