【Python】一文带你学会数据结构中的列表、元组

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?type=blog个人简介:打工人。

持续分享:机器学习、深度学习、python相关内容、日常BUG解决方法及Windows&Linux实践小技巧。

如发现文章有误,麻烦请指出,我会及时去纠正。有其他需要可以私信我或者发我邮箱:[email protected] 

        Python中的列表和元组是两种常用的数据结构,它们都可以用来存储多个数据项,并且具有一些相似的特性。

本文将详细讲解Python数据结构中的列表、元组


目录

一、列表

1.1 列表简介

1.2 列表发展历史

1.3 列表使用方法

1.3.1 创建列表

1.3.2 访问列表元素 

1.3.3 修改列表元素 

1.3.4 列表操作

(1)列表添加元素

(2)列表删除元素 

(3)列表排序

1.3.5 列表切片

1.3.6 列表的嵌套

1.3.7 列表的长度 

1.4 列表简单代码演示

1.5 列表总结 

二、元组

2.1 元组简介

2.2 元组发展历史

2.3 元组使用方法

2.3.1 创建元组

2.3.2 访问元组元素

2.3.3 元组操作

(1)元组切片

(2)元组合并

(3)元组复制

2.3.4 元组的长度

2.4 元组简单代码演示

2.5 元组总结

三、总结


一、列表

1.1 列表简介

        在Python中,列表是一种有序、可变、允许重复元素的数据结构。列表是由方括号包围的一系列元素组成,每个元素之间用逗号分隔。列表可以包含不同类型的元素,例如整数、字符串、布尔值等。它还允许嵌套其他列表,从而形成多维列表。

        列表的操作包括添加、删除、修改、访问和排序元素。由于列表的可变性,可以通过索引位置直接修改列表中的元素。此外,列表还支持切片操作,可以通过指定起始和结束位置来提取列表的一部分。

1.2 列表发展历史

        Python中的列表最早是从其他语言(如C语言)借鉴而来,但随着语言的发展,它逐渐与Python的核心哲学相结合,成为Python的核心数据结构之一。

        在Python语言的早期版本(如Python 1.0和Python 2.0)中,列表的实现相对简单,只提供基本的列表操作功能,例如索引访问和元素追加。而Python 2.0引入了列表推导式(List Comprehensions),使得在创建和操作列表时变得更加简洁和高效。

        随着Python 3.0的发布,列表得到了一些重要的改进和增强。最显著的变化之一是引入了可迭代的range对象,它在以前的版本中是通过调用内置函数range()来生成一个整数列表的方式实现的。

        此外,Python 3.0还引入了一种新的语法叫做"切片赋值",它允许将列表的一部分直接替换为另一个列表。这使得在需要替换或修改列表的特定部分时变得更加直观和简单。

1.3 列表使用方法

1.3.1 创建列表

        在Python中,可以使用方括号来创建一个列表,并在方括号内以逗号分隔每个数据项。例如,下面的代码创建了一个包含三个整数的列表:

numbers = [1, 2, 3]

        列表中的数据项可以是任意类型的数据,包括数字、字符串、布尔值等。例如,下面的代码创建了一个包含不同类型数据的列表: 

mixed = [1, 'two', True]

1.3.2 访问列表元素 

        列表中的每个元素都有一个索引,可以使用索引访问列表中的元素。列表的索引从0开始,依次递增。例如,下面的代码访问了列表中的第一个元素和最后一个元素:

numbers = [1, 2, 3]
print(numbers[0])  # 输出:1
print(numbers[2])  # 输出:3

        如果要访问列表中的最后一个元素,可以使用负数索引。例如,下面的代码访问了列表中的最后一个元素: 

numbers = [1, 2, 3]
print(numbers[-1])  # 输出:3

1.3.3 修改列表元素 

        列表中的元素是可以修改的,可以使用索引来修改列表中的特定元素。例如,下面的代码将列表中的第二个元素修改为4:

numbers = [1, 2, 3]
numbers[1] = 4
print(numbers)  # 输出:[1, 4, 3]

1.3.4 列表操作

        Python提供了丰富的列表操作方法和函数,可以对列表进行增删改查等操作。下面介绍几个常用的列表操作方法和函数。

(1)列表添加元素

  • 使用append()方法在列表末尾添加一个元素。例如,下面的代码在列表numbers末尾添加了一个元素4
numbers = [1, 2, 3]
numbers.append(4)
print(numbers)  # 输出:[1, 2, 3, 4]
  • 使用extend()方法在列表末尾添加多个元素。例如,下面的代码在列表numbers末尾添加了多个元素5, 6, 7
numbers = [1, 2, 3]
numbers.extend([5, 6, 7])
print(numbers)  # 输出:[1, 2, 3, 5, 6, 7]

(2)列表删除元素 

  • 使用del语句删除列表中的一个或多个元素。例如,下面的代码删除了列表numbers中的第二个元素:
numbers = [1, 2, 3]
del numbers[1]
print(numbers)  # 输出:[1, 3]
  • 使用remove()方法根据元素的值删除列表中的一个元素。例如,下面的代码删除了列表numbers中的元素2
numbers = [1, 2, 3]
numbers.remove(2)
print(numbers)  # 输出:[1, 3]

(3)列表排序

  • 使用sort()方法对列表中的元素进行排序。例如,下面的代码对列表numbers进行排序:
numbers = [3, 1, 2]
numbers.sort()
print(numbers)  # 输出:[1, 2, 3]
  • 使用reverse()方法将列表中的元素反转顺序。例如,下面的代码将列表numbers中的元素反转:
numbers = [1, 2, 3]
numbers.reverse()
print(numbers)  # 输出:[3, 2, 1]

1.3.5 列表切片

        列表切片是一种通过指定起始索引和终止索引来获取列表中的一个子列表的操作。通过切片,可以提取列表中的一部分数据,或者对列表中的一部分数据进行修改。切片的起始索引包含在切片内,但终止索引不包含在切片内。例如,下面的代码获取了列表numbers中的第二个和第三个元素:

numbers = [1, 2, 3, 4, 5]
print(numbers[1:3])  # 输出:[2, 3]

1.3.6 列表的嵌套

        Python允许在列表中嵌套其他列表,从而创建多维列表。嵌套列表可以用于存储更复杂的数据结构。例如,下面的代码创建了一个嵌套列表matrix,它包含了3个子列表:

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(matrix[1][2])  # 输出:6

1.3.7 列表的长度 

        可以使用len()函数获取列表的长度,即列表中元素的个数。例如,下面的代码获取了列表numbers的长度:

numbers = [1, 2, 3]
print(len(numbers))  # 输出:3

1.4 列表简单代码演示

        下面通过一个具体的例子来演示列表的使用方法。

        首先,我们创建一个空列表languages,然后向其中添加几种编程语言,最后输出列表中的元素:

languages = []
languages.append('Python')
languages.append('Java')
languages.append('C++')
print(languages)  # 输出:['Python', 'Java', 'C++']

        接下来,我们修改列表中的第二个元素,并输出修改后的列表: 

languages[1] = 'JavaScript'
print(languages)  # 输出:['Python', 'JavaScript', 'C++']

        然后,我们使用切片的方式获取列表中的子列表,并输出子列表: 

subset = languages[0:2]
print(subset)  # 输出:['Python', 'JavaScript']

        最后,我们使用len()函数获取列表的长度,并输出长度值: 

length = len(languages)
print(length)  # 输出:3

        通过以上的例子,我们可以看到列表的常见用法,包括创建列表、访问和修改列表元素、使用列表操作方法、获取列表长度等。 

1.5 列表总结 

        列表是Python中最常用的数据结构之一,它允许我们存储和操作多个数据项。列表可以包含任意类型的数据,通过索引可以访问和修改列表中的元素。Python提供了丰富的列表操作方法和函数,可以对列表进行增删改查等操作。列表的切片操作可以提取列表中的子列表。列表还支持嵌套,可以在列表中嵌套其他列表。

二、元组

2.1 元组简介

        元组(Tuple)是Python编程语言中的一种数据类型,它是一种有序的不可变序列。元组可以容纳任意类型的对象,包括数字、字符串、列表、字典等。元组与列表类似,但元组内的元素不能被修改,也不能增加或删除元素。这种特性让元组成为一种更加稳定和安全的数据结构。

        Python中的元组可以用小括号 () 或者 tuple() 函数来创建。元组中的元素用逗号分隔,且可以包含任意个数的元素。访问元组中的元素可以使用索引值,与列表类似。

2.2 元组发展历史

        元组最早出现在1979年,由Chris Rebert在Python社区的讨论中首次提出,当时被称为“A TUPLEOF”,用于作为一种数据结构。在早期的Python版本中,元组的主要作用是作为函数参数和返回值,用于一次性传递多个值。

        随着Python语言的发展,元组的功能得到了进一步的拓展和改进。Python的创始人Guido van Rossum在1991年发布的Python 1.0版本中引入了元组被用作分配(unpacking)机制,并允许将元组作为一种更加灵活和方便的数据结构来使用。

        Python 2.0版本的发布进一步强化了元组的功能,增加了元组解析(tuple unpacking)和元组比较(tuple comparison)等特性,使得元组在Python编程中被广泛应用。同时,元组的不可变性质也为编程带来了一定的好处,例如可以作为字典的键值、作为集合的元素等。

        到了Python 3.0版本,元组的功能没有发生重大变化,保持了与之前版本的兼容性。元组在Python编程中的重要性不言而喻,它既稳定又高效,适用于许多场景,是Python编程中不可或缺的一部分。

2.3 元组使用方法

2.3.1 创建元组

        在Python中,可以使用圆括号来创建一个元组。元组中的数据项之间以逗号分隔。例如,下面的代码创建了一个包含三个整数的元组:

numbers = (1, 2, 3)

        与列表不同的是,元组一旦创建就不能修改其中的数据项。 

2.3.2 访问元组元素

        元组中的每个元素都有一个索引,可以使用索引访问元组中的元素。索引从0开始,依次递增。例如,下面的代码访问了元组中的第一个元素和最后一个元素:

numbers = (1, 2, 3)
print(numbers[0])  # 输出:1
print(numbers[2])  # 输出:3

        元组也支持负数索引,可以使用负数索引访问元组中的最后一个元素。例如,下面的代码访问了元组中的最后一个元素: 

numbers = (1, 2, 3)
print(numbers[-1])  # 输出:3

2.3.3 元组操作

        尽管元组不可修改,但仍然提供了一些操作方法和函数。

(1)元组切片

        与列表类似,元组也支持切片操作。使用切片可以获取元组中的一部分数据。切片的起始索引包含在切片内,但终止索引不包含在切片内。例如,下面的代码获取了元组numbers中的第二个和第三个元素:

numbers = (1, 2, 3, 4, 5)
print(numbers[1:3])  # 输出:(2, 3)

(2)元组合并

        可以使用+运算符将两个元组合并成一个新的元组。例如,下面的代码将元组a和元组b合并成元组c

a = (1, 2, 3)
b = (4, 5, 6)
c = a + b
print(c)  # 输出:(1, 2, 3, 4, 5, 6)

(3)元组复制

        可以使用*运算符将一个元组复制多次,并生成一个新的元组。例如,下面的代码将元组numbers复制3次,并生成新的元组result

numbers = (1, 2, 3)
result = numbers * 3
print(result)  # 输出:(1, 2, 3, 1, 2, 3, 1, 2, 3)

2.3.4 元组的长度

        可以使用len()函数获取元组的长度,即元组中的元素个数。例如,下面的代码获取了元组numbers的长度:

numbers = (1, 2, 3)
print(len(numbers))  # 输出:3

2.4 元组简单代码演示

        下面通过一个具体的例子来演示元组的使用方法。

        首先,我们创建一个空元组fruits,然后向其中添加几种水果名称,最后输出元组中的元素:

fruits = ()
fruits += ('apple',)
fruits += ('banana',)
fruits += ('orange',)
print(fruits)  # 输出:('apple', 'banana', 'orange')

        在元组创建后,我们尝试修改元组中的元素。由于元组不可修改,会引发TypeError异常: 

fruits[1] = 'pear'

        接下来,我们使用切片的方式获取元组中的子元组,并输出子元组: 

subset = fruits[0:2]
print(subset)  # 输出:('apple', 'banana')

        最后,我们使用len()函数获取元组的长度,并输出长度值: 

length = len(fruits)
print(length)  # 输出:3

        通过以上的例子,我们可以看到元组的基本用法,包括创建元组、访问元组元素、使用切片操作、获取元组长度等。 

2.5 元组总结

        元组是Python中常用的数据结构之一,它与列表相似,但不可修改。元组使用圆括号来创建,数据项之间以逗号分隔。可以通过索引访问元组中的元素。元组支持切片操作、合并操作和复制操作。可以使用len()函数获取元组的长度。元组的不可修改性使得它在某些场景下更为适用。

三、总结

        列表和元组是Python中两种常用的数据结构,它们都可以用来存储多个数据项,并具有一些相似的特性。列表和元组都可以包含任意类型的数据,例如数字、字符串、布尔值等。

        列表是一种可变的数据结构,可以动态地添加、删除、修改元素。列表使用方括号来创建,数据项之间以逗号分隔。可以使用索引访问和修改列表中的元素。列表还提供了丰富的操作方法和函数,用于增删改查等操作。

        元组是一种不可变的数据结构,一旦创建就无法修改元素。元组使用圆括号来创建,数据项之间以逗号分隔。可以使用索引访问元组中的元素。元组支持切片操作、合并操作和复制操作。

        列表和元组都是非常常用的数据结构,根据实际需求选择合适的数据结构可以提高代码的效率和可读性。列表适合用于存储需要频繁修改的数据,而元组适合用于存储不需要修改的数据。

        总的来说,列表和元组是Python中灵活和高效的数据结构,它们对于处理多个数据项非常有效,并提供了丰富的操作方法和函数。掌握列表和元组的使用方法对于开发Python程序非常重要。

 

猜你喜欢

转载自blog.csdn.net/Code_and516/article/details/131470053