Python List – 动态数组的使用和操作

Python List是常用的数据结构之一,它可以用来存储任意元素的集合,并且支持动态调整大小。在Python中,List的实现采用了动态数组的方式,因此也被称作Dynamic Array。

一、List的创建和赋值

创建List的方法非常简单,直接用方括号[]括起来,其中每个元素之间用逗号分隔,如下所示:

<!--代码块-->
my_list = [1, 2, 3, 4, 5]

可以看到,我们创建了一个包含5个元素的List。

也可以使用list()函数将其他可迭代对象转换为List,如下所示:

<!--代码块-->
my_string = "Hello World"
my_list = list(my_string)
print(my_list) # ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']

向List中添加元素可以使用append()函数、insert()函数和extend()函数,如下所示:

<!--代码块-->
my_list = [1, 2, 3, 4, 5]
my_list.append(6) # [1, 2, 3, 4, 5, 6]
my_list.insert(0, 0) # [0, 1, 2, 3, 4, 5, 6]
my_list.extend([7, 8]) # [0, 1, 2, 3, 4, 5, 6, 7, 8]

二、List的索引和切片

List的索引方式与字符串相同,可以通过下标获取元素,同时也支持负数下标,表示倒数第几个元素。如下所示:

<!--代码块-->
my_list = [1, 2, 3, 4, 5]
print(my_list[0]) # 1
print(my_list[-1]) # 5

同时,List还支持切片,可以通过下标范围获取部分元素,如下所示:

<!--代码块-->
my_list = [1, 2, 3, 4, 5]
print(my_list[1:3]) # [2, 3]

需要注意的是,切片下标是左闭右开的区间,即左边的下标对应的元素会被包含,右边的下标对应的元素不会被包含。

三、List的删除和修改

与添加元素相对应,List还提供了多种删除元素的方法,如下所示:

<!--代码块-->
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8]
my_list.pop() # 8,删除最后一个元素
my_list.pop(0) # 0,删除第一个元素
my_list.remove(2) # [1, 3, 4, 5, 6, 7],删除特定元素

同时,List也支持直接对元素进行修改,如下所示:

<!--代码块-->
my_list = [1, 2, 3, 4, 5]
my_list[0] = 0 # [0, 2, 3, 4, 5]

四、List的排序和反转

List支持多种排序方式,可以使用sort()函数进行排序,如下所示:

<!--代码块-->
my_list = [2, 3, 1, 5, 4]
my_list.sort() # [1, 2, 3, 4, 5]

当List中的元素为对象时,也可以通过传入关键字参数key来指定排序的键,如下所示:

<!--代码块-->
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __repr__(self):
        return f"Person({self.name}, {self.age})"

my_list = [Person("Amy", 20), Person("Bob", 18), Person("Cathy", 23)]
my_list.sort(key=lambda x: x.age) # [Person(Bob, 18), Person(Amy, 20), Person(Cathy, 23)]

List也支持反转,可以使用reverse()函数进行反转,如下所示:

<!--代码块-->
my_list = [1, 2, 3, 4, 5]
my_list.reverse() # [5, 4, 3, 2, 1]

五、List的复制和遍历

在Python中,List的赋值操作实际上是引用的传递,因此修改一个List的副本,原List也会被修改。如果需要创建一个原List的副本,可以使用切片或者copy()函数进行复制,如下所示:

<!--代码块-->
my_list = [1, 2, 3, 4, 5]
my_list_copy = my_list[:] # [1, 2, 3, 4, 5]
my_list_copy[0] = 0 # [0, 2, 3, 4, 5]
print(my_list) # [1, 2, 3, 4, 5]

遍历List可以使用for循环,如下所示:

<!--代码块-->
my_list = [1, 2, 3, 4, 5]
for item in my_list:
    print(item)

当需要同时遍历List的下标和元素时,可以使用enumerate()函数,如下所示:

<!--代码块-->
my_list = [1, 2, 3, 4, 5]
for index, item in enumerate(my_list):
    print(index, item)

六、总结

Python List是常用的数据结构之一,它可以用来存储任意元素的集合,并且支持动态调整大小。本文从创建List、索引和切片、删除和修改、排序和反转、复制和遍历等多个方面对List进行了详细的讲解。

完整代码如下所示:

<!--代码块-->
# 创建List
my_list = [1, 2, 3, 4, 5]
my_string = "Hello World"
my_list = list(my_string)
print(my_list)

# 添加元素
my_list.append(6)
my_list.insert(0, 0)
my_list.extend([7, 8])

# 索引和切片
print(my_list[0]) # 1
print(my_list[-1]) # 5
print(my_list[1:3]) # [2, 3]

# 删除和修改
my_list.pop() # 8,删除最后一个元素
my_list.pop(0) # 0,删除第一个元素
my_list.remove(2) # [1, 3, 4, 5, 6, 7],删除特定元素
my_list[0] = 0 # [0, 2, 3, 4, 5]

# 排序和反转
my_list = [2, 3, 1, 5, 4]
my_list.sort() # [1, 2, 3, 4, 5]
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __repr__(self):
        return f"Person({self.name}, {self.age})"

my_list = [Person("Amy", 20), Person("Bob", 18), Person("Cathy", 23)]
my_list.sort(key=lambda x: x.age) # [Person(Bob, 18), Person(Amy, 20), Person(Cathy, 23)]
my_list = [1, 2, 3, 4, 5]
my_list.reverse() # [5, 4, 3, 2, 1]

# 复制和遍历
my_list = [1, 2, 3, 4, 5]
my_list_copy = my_list[:]
my_list_copy[0] = 0
print(my_list)
for item in my_list:
    print(item)
for index, item in enumerate(my_list):
    print(index, item)

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/303789.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-31 11:50
下一篇 2024-12-31 11:50

相关推荐

  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • QML 动态加载实践

    探讨 QML 框架下动态加载实现的方法和技巧。 一、实现动态加载的方法 QML 支持从 JavaScript 中动态指定需要加载的 QML 组件,并放置到运行时指定的位置。这种技术…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29

发表回复

登录后才能评论