首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python入门(三):数据结构

索引切片 索引从0开始,至列表长度-1 索引可以是负数,代表从列表末尾往前数 切换list[begin:end],获取切换list内元素,从begin开始,至end结束,不包含end 索引和切换对应值都可以修改...列表推导式 列表推导式(又称列表解析式)提供了一种简明扼要方法来创建列表。 ?...03、元组 tuple 一种类似列表数据序列类型 要点是不可变,不可以添加、删除、更新元素 两个小括号包括起来,元素之间逗号分隔 创建方式 student = (1001, 'xiaoming',...20)# 元组括号可以省略:tup = "a", "b", "c", "d"# 创建空元组和单个元素元组方式:tup = ()tup = (50,) 索引切片 # 元组和列表一样支持索引切片,...{"id":123, "name":"liming"} 字典dict和列表list对比 列表顺序数字做索引,字典Key做索引,相当于给每个元素进行了命名("3号学生"和"xm同学"区别) 如果有一个数据列表

1K30

超详解——Python 列表详解——小白篇

列表简介 列表是Python中一种数据结构,用于存储有序元素集合。列表使用方括号([])表示,元素之间逗号分隔。列表元素可以是任意类型,包括其他列表。...列表元素可以通过索引访问,索引从0开始。 列表特点 有序性:列表元素是有序排列,每个元素都有一个唯一索引。 可变性:列表是可变,可以随时修改其内容。...len() 常用于获取列表长度,以便在遍历或索引操作时进行边界检查。...sorted() 用于获取列表排序副本,而不修改原列表,非常适合在需要保持原数据不变情况下进行排序。...reversed() 提供了一种简单方法来反转列表元素顺序,尤其在需要从后向前遍历列表时非常有用。

10410
您找到你想要的搜索结果了吗?
是的
没有找到

python 基础知识第7讲:序列-列表

lst = [1,2,3,4,5] # 创建了一个带数据列表,多个数据之间逗号隔开 # 列表可以保存任意对象 lst = [1,'python',None,True,[1,2,3],print]...,索引不能超过总长度,如果超出会报错 获取列表长度(列表中元素个数) len() 通过该函数可以获取列表长度 获取长度 其实就是列表最大索引值+1 lst [0] # 通过索引取出想要数据...4.3.2 通过切片方式读取列表元素 切片 hero = ['钢铁侠','绿巨人','蜘蛛侠','黑寡妇','蚁人','美国队长'] print(hero[0:3]) 1.切片指从现有类别,获取一个列表...2.通过切片获取元素,会包括起始位置元素,不会包括结束位置元素 3.做切片时,总会返回一个列表,不会影响原来列表 4.起始位置和结束位置索引是可以不写 如果省略结束位置,则会一直截取到最后...第二个参数表示查找起始位置 第三个参数表示查找接收位置 print(hero.count('蜘蛛侠')) #统计指定元素在列表当中出次数 4.3.4 列表修改 通过索引切片方式进行修改只能是可变序列

55520

【Python进阶,一学就会】系列1(文末免费送10本书)

切片 切片(slicing)是用来提取连续列(子序列)所给定序列中元素。默认情况下步长是1,从而生成一个连续序列。然而,我们能够为步长赋值去获取非连续序列元素。 语法: ?...首先,我们将从索引”d”到结尾列表进行切片,再从开始到索引”d”进行切片操作。 # Python program to reverse an array....我们filter()函数返回序列中偶数。 迭代协议 迭代协议和迭代是贯穿Python编程一个重要概念。简单来说,一次迭代是迭代协议来进行迭代过程。...总结如下: 任何用_next_方法来进行到下一个结果,和一系列结果结束时引发停止循环异常事件称为迭代,任何此类对象也可以使用单步执行for循环或其他迭代工具。...除了for循环,python里还有其他迭代工具,例如列表推导式、映射、压缩等。 进展不错,但是迭代协议还有一个步骤,就是获取底层对象迭代器。

47710

Python入门(10)

1、元组(tuple) 元组(tuple)和列表(list)很相似,但是,列表允许并且提供了方法来改变它值,而元组是不可改变,即不允许你改变它值,这应该也是它没有方法部分原因。...说明:我们特地使用了前面列表示例所有对象,来创建一个元组,它们看起来除了括号不同,是不是长得很相像?请注意,如何定义一个元组和只有一个单项元组。看看最后定义tuple6真的是一个元组吗?...4、通过-1索引获取最后一项值。 5、切片:使用冒号分节符进行切片操作。 6、特殊切片获取一个完整倒序元组。 4、更新元组 我们可以使用重新赋值、append()方法对元组进行修改或更新。...说明: 1、利用切片实现插值; 2、使用append()方法向列表末尾追加新项。 3、元组无法通过索引,直接为指定下标的项重新赋值,也不能使用del语句,通过索引删除指定下标的项。...说明: (1)、zip()会将两个以上序列,打包到一个zip对象(由元组构成序列)之中。 (2)、这个新序列可以通过迭代遍历,也可以直接转换为一个列表或元组。

62230

【Python】掌握Python中索引切片

另外,Python支持切片,这是一个特性,可以让我们提取原始sequence对象子集。 在本文中,我们将探讨索引切片是如何工作,以及如何使用它们来编写干净、更具python风格代码。...my_string[start:end] 因此,在执行切片时,Python将返回一个对象,其中包含从下索引开始到上索引一个位置所有元素。...作为一个例子,考虑一个例,其中我们需要获取字符串前两个元素: >>> my_string[0:2] 'He' ---- 正如我已经提到,2个位置都提供并不是强制性。...好吧,这是一种快速复制对象方法,如下所示 >>> my_string = 'Hello' >>> my_string_copy = my_string[:] 请注意,当此切片技术将生成一个不同对象时...这对字符串之类不可变对象类型没有任何区别,但是在处理列表之类可变对象类型时,注意这一点非常重要。 扩展切片 Python中切片表达式附带了第三个索引,该索引是可选,指定时用作步骤。

1.2K30

Numpy初探

标准数据类型numpy数组基本操作NumPy数组属性数组索引获取单个元素数组切片获取子数组非副本视图子数组创建数组副本数组变形数组拼接和分裂 《Python数据科学手册》读书笔记 理解Python...这意味着每一个 Python 对象都是一个聪明伪 C 语言结构体, 该结构体不仅包含其值, 还有其他信息。...以下是列表列表初始化多维数组一种方法: np.array([range(i,i+3) for i in [2,4,6]]) array([[2, 3, 4], [4, 5, 6],...从头创建数组 面对大型数组时候, NumPy 内置方法从头创建数组是一种更高效方法。...你也可以通过 reshape 方法来实现, 或者简单地在一个切片操作中利用 newaxis 关键字: x = np.array([1, 2, 3]) # 通过变形获得行向量 x.reshape((1

2.1K20

Python进阶:切片误区与高级用法

众所周知,我们可以通过索引值(或称下标)来查找序列类型(如字符串、列表、元组…)中单个元素,那么,如果要获取一个索引区间元素该怎么办呢?...切片(slice)就是一种截取索引片段技术,借助切片技术,我们可以十分灵活地处理序列类型对象。通常来说,切片作用就是截取序列对象,然而,它还有一些使用误区与高级用法,都值得我们注意。...2、切片是伪独立对象 切片操作返回结果是一个独立序列(PS:也有例外,参见《Python是否支持复制字符串呢?》)。以列表为例,列表切片后得到还是一个列表,占用新内存地址。...当取出切片结果时,它是一个独立对象,因此,可以将其用于赋值操作,也可以用于其它传递值场景。但是,切片只是浅拷贝,它拷贝是原列表中元素引用,所以,当存在变长对象元素时,新列表将受制于原列表。...首先,它是一种特殊类型,即对数组(array)做切片后,得到竟然不是一个数组;其次,你可以创建和初始化一个切片,需要声明长度(len)和容量(cap);再者,它还存在超出底层数组界限而需要进行扩容动态机制

70030

Python——列表

查找列表元素 python打印列表时候,会将外面的方括号打印出来。既然列表是有序,那么python肯定提供了有序访问方式,那就是使用下标来进行索引。...python和大多数计算机编程语言一样,索引是从0开始,而不是1。但是python为列表提供了从尾部开始访问方式,即使你不知列表有多长。python中可以使用下标-1来索引列表最后一个元素。...Python 中所有对象都有其自己唯一 id。 id 在创建时已分配给对象。 id 是对象内存地址,并且在每次运行程序时都不同。 我打算id()函数来取地址,从而展示del做法。...python列表本身还提供了pop方法来进行删除,这方法听起来很像是栈方法,但是实际上它可以删除非栈顶元素。这个方法好处是,它将元素弹出以后,你还可以使用这个元素。...创建数值列表 虽然python列表可以容纳任何东西,但是一般场景是只容纳某一种类型数据。例如:容纳整形数字或者是字符串。下面,我将介绍在python种非常重要函数range()方法。

1.9K10

第四章4:使用列表

列表切片也是同样方式,以便于我们能够获得特定对象。...切片和range()函数具有一样参数,如开始、结束、步长: # 切片获取一个列表特定对象 print(nums[1:3]) # 输出结果为索引位置1和2上对象 print(nums[:2])...# 输出结果为索引位置0和1上对象 print(nums[::2]) # 输出结果为索引位置0,2和4上对象,即索引从数字0开始,每次递增2 print(nums[-2:]) # 输出结果为列表中最后两个对象...对于步长为正而开始值为负将会使切片从后向前获取数据。如果从开始位置或停止位置使用负数,则切片将从后面开始或停止。...这意味着,如果你将停止位置上为-5,切片获取对象将从列表开头一直切到列表结束之前五个元素。 增加元素 当你需要向你现有列表中添元素,Python有两个不同方法来实现这一目标。

5.6K30

Python学习手册之数据类型

empty = () 尽管元组不能改变,但是运行速度快于列表列表切片 Python 为列表提供了高级特征切片 (Slice) 操作功能,大大弱化了获取一个列表区间操作。...切片操作通过两个索引数字中间冒号分割来完成,返回从第一个数字索引到第二个数字索引一个列表。...如果切片一个数字忽略,切片操作从 0 开始,如果切片第二个数字缺失,切片操作直到列表尾部结束。...使用 [::-1] 切片一种常见方法来反转列表列表生成式 列表生成式即 List Comprehensions,是 Python 内置非常强大却简单可以用来创建列表生成式。...常用方法 字符串方法 Python 标准库内建一些常用方法。 join - 一个字符串作为分隔符连接字符串列表。 replace - 对字符串进行替换操作。

1.1K20

精品教学案例 | 权利游戏:战争数据分析

3.2 选取战争中间阶段信息 下面我们换一种切片操作方法.loc方法来选取下一年——即在A.C299年间战争数据: battles_299 = battles.loc[battles['year'... 'attacker_king':'attacker_commander'] 这是.loc方法中布尔索引,第一个参数为布尔型Series对象,用于选取在北方发生一些战争行数据,第二个参数是列标签切片类型...)] battles_300.head() 与之前方法不同,.iloc方法接受布尔型列表或数组,但不接受布尔型Series对象,所以用上面这种代码形式索引A.C300年间战争数据。...1开始,所以整数切片形式时候也需要记住.iloc方法使根据位置进行索引,比如选取前两行两列: battles.iloc[0:2,0:2] 即选取位置为0,1行列数据。...下面我们也可以切片操作对数据进行修改,这种链式赋值很容易产生SettingWithCopy警告,为了避免这种警告除了前面提到过可以重新创立一个副本,也可以.loc或.iloc方法进行: battles.iloc

1.1K00

使用列表

list1.clear() print(list1) if __name__ == '__main__': main() 和字符串一样,列表也可以做切片操作,通过切片操作我们可以实现对列表复制或者将列表一部分取出来创建出新列表...= sorted(list1, key=len) print(list1) print(list2) print(list3) print(list4) # 给列表对象发出排序消息直接在列表对象进行排序...(f)) # 查看对象占用内存字节数 print(f) # 请注意下面的代码创建不是一个列表而是一个生成器对象 # 通过生成器可以获取到数据但它不占用额外空间存储数据...': main() 除了上面提到生成器语法,Python中还有另外一种定义生成器方式,就是通过yield关键字将一个普通函数改造成生成器函数。...所谓斐波拉切数列可以通过下面递归方法来进行定义: $${\displaystyle F_{0}=0}$$ $${\displaystyle F_{1}=1}$$ $${\displaystyle F_

59120

Python 算法基础篇之字符串操作:索引切片、常用方法

Python 算法基础篇之字符串操作:索引切片、常用方法 引言 字符串是一种常见数据类型,在 Python 中对字符串进行操作是非常常见需求。...字符串切片 字符串切片是指从字符串中提取子字符串操作。我们可以通过切片获取字符串一部分。下面是一个示例代码: # 字符串切片示例 str = "Hello, Python!"...通过切片操作,我们可以轻松地截取字符串一部分,方便地进行字符串处理。 4. 字符串常用方法 在 Python 中,字符串是一个对象,它具有许多有用方法来处理和操作字符串。...split 方法可以将字符串拆分成子字符串列表, join 方法用于将字符串列表连接成一个字符串,以指定连接符进行连接。 通过这些常用字符串方法,我们可以方便地处理和操作字符串。...总结 本篇博客介绍了字符串基本概念,并通过实例代码演示了字符串索引切片和常用方法使用。字符串是一种常见数据类型,在 Python 中对字符串进行操作是非常常见需求。

1K00

Python入门(9)

今天,重点讲列表(list) 1、列表(list) Python列表(list),是一种灵活有序对象集合。我们前面讲过字符串是一种序列,列表显然也是一种序列。但是,列表和字符串不同。...请注意,上例中,我们用到了所谓切片操作概念。这里,补充讲解一下: (1)切片操作是专门针对序列类型数据所进行一种分段操作行为。 (2)切片一个序列数据其中一段。...(3)切片方法,以list数据为例:list[a:b:c],它会得到一个切片,这个切片是从list数据a索引位置开始,为0时可省略;到b前面结束,如果直接到末尾,可省略;c为切片方向,默认正向,可省略...(4)完整理解切片,我们还需要知道有一种不常用索引存在,那就是反向索引,它默认从序列结尾处开始为-1。...2、append(obj):在列表末尾添加新对象对象来扩展原来列表。 3、extend(seq):在列表末尾追加另一个序列中值,列表扩展原来列表

59930

兼容并蓄广纳百川,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang复合容器类型声明和使用EP04

书接上回,容器数据类型是指一种数据结构、或者抽象数据类型,其实例为其他类对象。 或者说得更具体一点,它是以一种遵循特定访问规则方法来存储对象。...数组     数组是一个由长度固定特定类型元素组成序列,一个数组可以由零个或多个元素组成,它是一种线性数据结构,同时内部元素内存地址是相连,没错,Python中元祖(tuple)和Go lang...特别注意,如果你需要测试一个切片是否是空,使用 len(s) == 0 来判断,而不应该用 s == nil 来判断:     切片自己不拥有任何数据元素。它只是底层数组一种表示。...它是一个拥有键值对元素无序集合,在这个集合中,键是唯一,可以通过键来获取、更新或移除操作。无论这个散列表有多大,这些操作基本上是通过常量时间完成。...for key, value := range steps3 { fmt.Printf("key: %s, value: %d\n", key, value) }     同样使用len方法来获取集合长度

31820

Python 切片为什么不会索引越界?

切片(slice)是 Python 中一种很有特色特性,在正式开始之前,我们先来复习一下关于切片知识吧。 切片主要用于序列对象中,按照索引区间截取出一段索引内容。...切片书写形式:i : i+n : m ;其中,i 是切片起始索引值,为列表首位时可省略;i+n 是切片结束位置,为列表末位时可省略;m 可以不提供,默认值是 1,不允许为 0,当 m 为负数时,列表翻转...“切片”功能,例如截取数组或字符串片段,但是,它们并没有一种在语法层面上通用性支持。...[编程语言中切片语法形式] 切片基本用法就能够满足大部分需求,但是,Python 切片还有一些进阶用法,例如:切片占位符用法(可实现列表赋值、删除与拼接操作)、自定义对象实现切片功能、迭代器切片...在其它支持切片语法语言中,也许还有跟 Python 一样设计。但是,我还不知道有没有(学识浅薄)…… 最后,继续回到标题中问题“Python 切片为什么不会索引越界”。

1.5K20

python可变对象和不可变对象

但是,可以使用切片(slicing)或指定索引方式来访问元组中元素。...虽然字符串本身是不可变,但我们可以通过切片(slicing)来获取字符串子串,这实际上是创建了一个字符串对象。例如: my_str = 'Hello, world!'...print(id(my_str)) sub_str = my_str[0:5] # 获取前5个字符 print(sub_str) # 输出:Hello 需要注意是,当我们对字符串进行切片操作时,会创建一个字符串对象...这是因为字符串在Python中是不可变,任何对字符串操作都会生成一个字符串对象。 除了切片操作外,我们还可以使用字符串一些常用方法来处理字符串,如拼接、替换、分割等。...这些方法都不会修改原始字符串,而是返回一个字符串对象

25120

【Python入门第七讲】列表(List)

print(my_list[0]) # 输出: 1 列表切片:通过切片获取列表子集。...可以使用两个索引来访问二维列表元素,第一个索引选择子列表,第二个索引选择子列表元素。 列表嵌套可以继续扩展,形成复杂数据结构。这在处理表格、矩阵、图等数据时非常有用。...reverse 反转列表元素 count 统计某个元素在列表中出现次数 index 查找某个元素在列表一个索引位置 示例: 1. len() len() 函数用于获取列表长度(元素个数...修改、添加和删除列表元素 在 Python 中,可以使用一些方法来修改、添加和删除列表元素。 修改元素 要修改列表元素,可以通过索引直接赋值新值给该位置元素。...使用 extend 方法扩展列表 extend() 方法用于在列表末尾一次性追加另一个可迭代对象(通常是另一个列表所有元素。

20030
领券