Python基本数据结构与用法详解【列表、元组、集合、字典】

Python基本数据结构与用法详解【列表、元组、集合、字典】

Python是一种动态、面向对象、解释型脚本语言,广泛应用于爬虫、数据分析、Web开发等领域。掌握Python基本数据结构和用法是入门Python的必学内容,本文将详细讲解Python的列表、元组、集合、字典四种基本数据结构的概念、特点、用法及示例。

列表

列表(List)是Python中最常用的一种数据结构,可以存储多个元素,这些元素可以是数字、字符串、甚至是其他列表等各种类型。列表使用一对方括号([])表示,每个元素之间用逗号(,)隔开。

列表的创建

直接创建

可以通过方括号直接创建一个列表:

>>> my_list = [1, 2, 'three', 4.0]
>>> print(my_list)
[1, 2, 'three', 4.0]

使用list()函数创建

也可以通过list()函数将其他序列(如元组、字符串)转换为列表:

>>> my_tuple = (1, 2, 'three', 4.0)
>>> my_list = list(my_tuple)
>>> print(my_list)
[1, 2, 'three', 4.0]

>>> my_str = 'hello'
>>> my_list = list(my_str)
>>> print(my_list)
['h', 'e', 'l', 'l', 'o']

列表的访问

索引和切片

列表中的元素可以通过索引和切片来访问。

>>> my_list = [1, 2, 'three', 4.0]
>>> print(my_list[0])    # 访问第一个元素
1
>>> print(my_list[-1])   # 访问最后一个元素
4.0
>>> print(my_list[1:3])  # 切片,访问第2到第3个元素
[2, 'three']

遍历列表

可以使用for循环遍历列表中的所有元素:

>>> my_list = [1, 2, 'three', 4.0]
>>> for item in my_list:
...     print(item)
1
2
three
4.0

列表的操作

添加元素

可以使用append()方法在列表的末尾添加一个元素:

>>> my_list = ['apple', 'banana']
>>> my_list.append('orange')
>>> print(my_list)
['apple', 'banana', 'orange']

同样地,可以使用insert()方法在指定位置插入一个元素:

>>> my_list = ['apple', 'banana']
>>> my_list.insert(1, 'orange')
>>> print(my_list)
['apple', 'orange', 'banana']

删除元素

可以使用del语句、remove()方法和pop()方法删除列表中的元素。其中,del语句用于删除指定位置的元素(也可以删除整个列表);remove()方法用于删除指定值的元素;pop()方法用于删除指定位置的元素并返回该元素的值。

>>> my_list = ['apple', 'orange', 'banana']
>>> del my_list[1]           # 删除第2个元素
>>> print(my_list)
['apple', 'banana']

>>> my_list = ['apple', 'orange', 'banana']
>>> my_list.remove('orange') # 删除值为'orange'的元素
>>> print(my_list)
['apple', 'banana']

>>> my_list = ['apple', 'orange', 'banana']
>>> val = my_list.pop(1)     # 删除第2个元素并返回'orange'
>>> print(val)
orange
>>> print(my_list)
['apple', 'banana']

元组

元组(Tuple)是Python中另一种常用的数据结构,和列表相似,但元组一旦创建就不允许修改,因此可以用作常量列表或者安全敏感数据的容器。元组使用一对小括号(())表示,每个元素之间用逗号(,)隔开。

元组的创建

直接创建

可以通过小括号直接创建一个元组:

>>> my_tuple = (1, 2, 'three', 4.0)
>>> print(my_tuple)
(1, 2, 'three', 4.0)

使用tuple()函数创建

也可以通过tuple()函数将其他序列(如列表、字符串)转换为元组:

>>> my_list = [1, 2, 'three', 4.0]
>>> my_tuple = tuple(my_list)
>>> print(my_tuple)
(1, 2, 'three', 4.0)

>>> my_str = 'hello'
>>> my_tuple = tuple(my_str)
>>> print(my_tuple)
('h', 'e', 'l', 'l', 'o')

元组的访问

元组中的元素可以通过索引和切片来访问,和列表相同。

元组的操作

由于元组是不可变的,因此只有很少的操作可以对元组进行修改。

元组的合并

可以使用加号(+)将两个元组合并成一个新的元组:

>>> my_tuple1 = (1, 2, 'three')
>>> my_tuple2 = (4.0, 5.0, 6.0)
>>> my_tuple = my_tuple1 + my_tuple2
>>> print(my_tuple)
(1, 2, 'three', 4.0, 5.0, 6.0)

元组的复制

可以使用乘号(*)将元组重复多次:

>>> my_tuple = (1, 2, 'three') * 3
>>> print(my_tuple)
(1, 2, 'three', 1, 2, 'three', 1, 2, 'three')

集合

集合(Set)是Python中另一种常见的数据结构,类似于数学中的集合。它用一对花括号({})表示,每个元素之间用逗号(,)隔开。

集合中的元素是无序的,且每个元素只能出现一次。集合的主要作用是去除序列中的重复元素,并且可以进行集合运算(如交、并、差)。

集合的创建

可以直接使用花括号创建一个集合:

>>> my_set = {1, 2, 3, 4}
>>> print(my_set)
{1, 2, 3, 4}

也可以使用set()函数将其他序列(如列表、字符串)转换为集合:

>>> my_list = [1, 2, 3, 4]
>>> my_set = set(my_list)
>>> print(my_set)
{1, 2, 3, 4}

>>> my_str = 'hello'
>>> my_set = set(my_str)
>>> print(my_set)
{'e', 'l', 'h', 'o'}

集合的操作

可以使用交、并、差等运算对集合进行操作。

集合的交

可以使用&intersection()方法获取两个集合的交集:

>>> set1 = {1, 2, 3, 4}
>>> set2 = {3, 4, 5, 6}
>>> print(set1 & set2)
{3, 4}
>>> print(set1.intersection(set2))
{3, 4}

集合的并

可以使用|union()方法获取两个集合的并集:

>>> set1 = {1, 2, 3, 4}
>>> set2 = {3, 4, 5, 6}
>>> print(set1 | set2)
{1, 2, 3, 4, 5, 6}
>>> print(set1.union(set2))
{1, 2, 3, 4, 5, 6}

集合的差

可以使用-difference()方法获取两个集合的差集:

>>> set1 = {1, 2, 3, 4}
>>> set2 = {3, 4, 5, 6}
>>> print(set1 - set2)
{1, 2}
>>> print(set1.difference(set2))
{1, 2}

字典

字典(Dictionary)是Python中另一种常用的数据结构,用于存储键值对。它用一对花括号({})表示,每个键值对之间用冒号(:)隔开,键值对之间用逗号(,)隔开。

字典中的键是唯一的,且只能使用不可变类型(如数字、字符串、元组)作为键,值可以是任何数据类型。

字典的创建

可以通过花括号直接创建一个字典:

>>> my_dict = {'name': 'Alice', 'age': 20}
>>> print(my_dict)
{'name': 'Alice', 'age': 20}

也可以使用dict()函数:

>>> my_dict = dict([('name', 'Alice'), ('age', 20)])
>>> print(my_dict)
{'name': 'Alice', 'age': 20}

字典的访问

可以使用方括号加键来访问字典中的元素:

>>> my_dict = {'name': 'Alice', 'age': 20}
>>> print(my_dict['name'])
Alice

字典的操作

添加、修改元素

可以通过方括号加键来添加或修改字典中的元素:

>>> my_dict = {'name': 'Alice', 'age': 20}
>>> my_dict['gender'] = 'female'  # 添加元素
>>> print(my_dict)
{'name': 'Alice', 'age': 20, 'gender': 'female'}

>>> my_dict = {'name': 'Alice', 'age': 20}
>>> my_dict['age'] = 21          # 修改元素
>>> print(my_dict)
{'name': 'Alice', 'age': 21}

删除元素

可以使用del语句或pop()方法删除字典中的元素。其中,del语句用于删除指定键及其对应的值;pop()方法用于删除指定键并返回该键对应的值。

>>> my_dict = {'name': 'Alice', 'age': 20, 'gender': 'female'}
>>> del my_dict['gender']            # 删除'gender'键
>>> print(my_dict)
{'name': 'Alice', 'age': 20}

>>> my_dict = {'name': 'Alice', 'age': 20}
>>> val = my_dict.pop('age')         # 删除'age'键并返回20
>>> print(val)
20
>>> print(my_dict)
{'name': 'Alice'}

结语

本文对Python的四种基本数据结构进行了详细的介绍,同时给出了各种用法和操作的示例。掌握好这些数据结构的用法,可以大大提高Python程序的表现力和效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python基本数据结构与用法详解【列表、元组、集合、字典】 - Python技术站

(1)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 使用@符号让C#中的保留字做变量名的方法详解

    使用@符号让C#中的保留字做变量名的方法详解 在C#中,有一些保留字(reserved words)是用于定义语言的关键字,例如if、for、while等。这些保留字在代码中通常用于特定的语法结构,因此不能直接作为变量名使用。然而,有时候我们确实需要使用这些保留字作为变量名。为了解决这个问题,C#引入了@符号来允许使用保留字作为变量名。 下面是使用@符号让C…

    other 2023年8月8日
    00
  • react项目引入antd框架方式以及遇到的一些坑

    下面是react项目引入antd框架的攻略,包括以下内容: 安装antd 引入antd样式 引入antd组件 遇到的常见问题及解决方案 1. 安装antd 在安装antd之前,需要确保已经安装了react和react-dom,可以使用以下命令安装: npm install react react-dom 接着,使用以下命令安装antd: npm instal…

    other 2023年6月27日
    00
  • jquery.base64.js简单使用

    当您需要将字符串编码为Base64格式时,可以使用jquery.base64.js插件。以下是使用jquery.base64.js的完整攻略: 步骤1:下载和引入jquery64.js 首先,您需要下载jquery.base64.js文件,并将其引入到HTML文件中。以下是一个示例: <script srcjquery.min.js">…

    other 2023年5月6日
    00
  • 详解Android中App的启动界面Splash的编写方法

    详解Android中App的启动界面Splash的编写方法 在Android应用程序中,启动界面(Splash)是指在应用程序启动时显示的第一个界面。它通常用于展示应用程序的品牌标识、加载资源或执行初始化操作。本文将详细介绍在Android中编写启动界面的方法。 步骤一:创建启动界面布局文件 首先,我们需要创建一个布局文件来定义启动界面的外观。在res/la…

    other 2023年8月3日
    00
  • C++动态数组类的封装实例

    下面我会详细讲解关于“C++动态数组类的封装实例”的完整攻略。 1. 背景介绍 在 C++ 中,原生的数组容量是固定的,一旦定义了大小就无法修改;而动态数组则允许在运行时根据需要动态的分配和释放内存,其容量也可以被动态的改变,因此动态数组类在 C++ 中封装及应用十分常见。 2. 算法设计 动态数组类的封装基本上涉及以下的核心内容: 2.1 成员变量 由于动…

    other 2023年6月26日
    00
  • 探索PowerShell(五) PowerShell基础知识

    以下是“探索PowerShell(五) PowerShell基础知识”的完整攻略。 PowerShell基础知识 PowerShell是什么? PowerShell是一种由微软推出的面向任务的命令行脚本语言和相应的环境。通过PowerShell,可以轻松地管理操作系统、配置Windows服务器等。与传统的命令行工具相比,PowerShell更加强大、灵活,能…

    other 2023年6月27日
    00
  • bigdecimal(string)与bigdecimal(double)的区别

    BigDecimal 是 Java 中用于高精度计算的类,它可以处理任意精度的十进制数。在 BigDecimal 中,有两种常用的构造方法:BigDecimal(String) 和 BigDecimal(double)。它们的区别如下: BigDecimal(String):使用字符串构造一个 BigDecimal 对象,可以保证精度不会丢失。 BigDec…

    other 2023年5月7日
    00
  • iqoo8pro怎么开启开发者模式?iqoo8pro开启开发者模式教程

    当您需要进行一些高级设置或开发调试时,开启开发者模式是必须的。在iQOO 8 Pro中也可以通过以下步骤来启用开发者模式: 打开“设置”应用程序。 向下滚动并点击“关于手机”。 点击“版本号”七次,系统将提示“开启开发者模式”。 返回上一屏幕,在“系统”下找到“开发者选项”,点击进入设置页面。 将“开发者选项”状态切换为“开启”。 以上是iQOO 8 Pro…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部