首页 > 编程语言 >【python图解】Python 数据结构之列表和元组

【python图解】Python 数据结构之列表和元组

时间:2024-11-21 14:16:46浏览次数:3  
标签:tuple python 元素 列表 Python print 元组 my

【python图解】Python 数据结构之列表和元组

顾名思义,数据结构是能够将数据组合在一起的一种结构。

图片

在数学中,很多情况下需要将数据进行有序排列。例如我们统计了某班 50 人的数据成绩,那么一共50 个人。例如 Alice = 99, Bob = 86 .... 无疑是非常繁琐的。这时我们可以通过数据结构整合这些数据,这可以将程序大大简化。

图片

Python 中常用的数据结构有:

  •  列表 List : 用于保存有序项集合的变量,以方括号标识。

  •  元组 Tuple: 用于保存有序项集合的常量,以圆括号标识。

  •  字典 Dict: 用于保存无序(键,值)项集合的变量,以花括号标识。

  •  集合 Set: 用于保存无序项集合的变量,以花括号标识。

瑞士计算机科学家曾说过 "程序 = 数据结构 + 算法"。掌握 Python 中常用的数据结构是我们设计程序的一大基石。

学习 Python 中的数据结构,这将帮助你更好地存储和操作数据 。

图片

1. 列表

1.1 列表的概念

  •  定义:列表是一个有序的、可变的数据集合,可以存储任意数据类型的元素,如整数、字符串、浮点数、甚至是其他列表。

  •  特点:

    •  元素按插入顺序排列,有序性。

    •  元素可以被修改、增加或删除(可变性)。

    •  使用方括号 [] 作为表示方式,元素之间用逗号分隔。

创建包含元素的列表 numbers = [1, 2, 3, 4, 5]

图片

列表支持以下操作:

  • 增:通过函数 append 可以向列表内增加元素
  •  删:通过关键字 del 可以删除列表内元素
  •  查:通过关键字 [ ] 可以查找列表某个位置元素
  •  改:通过赋值符号 = 可以修改某个位置的元素
    • 图片

列表的优点是:

  •  快速向尾部添加元素
  •  节省占用计算机内容空间
  •  快速遍历所有元素
  • 图片

列表查找元素

通过 [ ] 关键字查找列表中某个位置的元素。

例如 l[0] 可以获取列表中首个元素,l[1] 可以获取列表中第 2 个元素。同时它还支持倒序查找,例如 l[-1] 表示倒数第一个元素(末尾的元素)。

图片

1.2 列表的创建

# 创建空列表
empty_list =[]
# 创建包含元素的列表
numbers =[1,2,3,4,5]
# 列表可以存储不同类型的元素
mixed_list =[1,"hello",3.14,[1,2,3]]

1.3 列表的常用方法

图片

  • 增加元素:append() 和 insert()

fruits = ["apple"]
fruits.append("banana")  # 在末尾添加
print(fruits)  # 输出 ['apple', 'banana']
fruits.insert(1, "cherry")  # 在索引 1 处插入
print(fruits)  # 输出 ['apple', 'cherry', 'banana']
  • 删除元素:remove()、pop() 和 del (3个方法)

fruits = ["apple","banana","cherry"]

fruits.remove("banana")# 删除指定值
print(fruits)# 输出 ['apple', 'cherry']

popped_item = fruits.pop()# 弹出最后一个元素
print(popped_item)# 输出 'cherry'
print(fruits)# 输出 ['apple']

del fruits[0]# 删除索引 0 的元素
print(fruits)  # 输出 []
  • 查询列表元素:通过列表切片,提取单个或者子列表通过索引访问元素:索引从 0 开始,可以为负数表示倒数位置。通过切片取出元素的子列表: [开始序列(0开始):结束序列(不包含):步长]

numbers = [1,2,3,4,5]
# 访问元素
print(numbers[0])# 输出 '1'
print(numbers[-1])# 输出 '5'

sublist = numbers[1:4]# 从索引 1 开始到索引 4 结束(不包括 4)
print(sublist)# 输出 [2, 3, 4]
# 步长切片
even_numbers = numbers[::2]
print(even_numbers)  # 输出 [1, 3, 5]
  • 修改列表元素 修改元素:通过索引直接赋值修改元素。

fruits = ["apple", "banana", "cherry"]
# 修改元素
fruits[1] = "orange"
print(fruits)  # 输出 ['apple', 'orange', 'cherry']

1.4其他方法:len(), sort(), reverse()

numbers = [5, 2, 3, 1, 4]
print(len(numbers))  # 输出列表长度 5
numbers.sort()  # 升序排序
print(numbers)  # 输出 [1, 2, 3, 4, 5]
numbers.reverse()  # 反转列表
print(numbers)  # 输出 [5, 4, 3, 2, 1]

1.5 列表的遍历

# 使用 for 循环遍历列表
fruits = ["apple", "orange", "cherry"]
for fruit in fruits:
    print(fruit)

# 使用索引遍历
for i in range(len(fruits)):

    print(f"Index {i}: {fruits[i]}")

1.6 列表的应用场景和总结

应用场景:适用于需要存储和处理一组有序、可变数据的情况。总结:列表是 Python 最常用的数据结构之一,灵活性强,适合处理动态变化的数据。

元组(Tuple)

2.1 元组的概念

  • 定义:元组是一个有序的、不可变的数据集合,元素的值不能被修改。

  • 特点:

    • 元素按插入顺序排列(有序性)。

    • 元素不可被修改(不可变性)。

    • 使用圆括号 () 作为表示方式,元素之间用逗号分隔。

      图片

2.2 元组的创建

创建单元素元组需要在元素后添加逗号

# 创建空元组
empty_tuple = ()
# 创建包含元素的元组
numbers = (1, 2, 3)
# 创建单元素元组需要在元素后添加逗号
single_element = (4,)

注意: 如果你省略逗号 (4),则 Python 会将其认为是一个普通整数,而不是一个元组。

图片

2.3 访问元组元素

与列表类似,可以通过索引访问元组元素。

# 访问元组元素
my_tuple =(10,20,30,40,50)
print(my_tuple[0])# 输出: 10
print(my_tuple[2])# 输出: 30

# 使用负索引
print(my_tuple[-1])# 输出: 50

# 元组的切片
print(my_tuple[1:4])# 输出: (20, 30, 40)
print(my_tuple[:3])   # 输出: (10, 20, 30)

2.4 元组的常用方法

由于元组是不可变的,许多列表的修改方法(如 append()remove() 等)在元组中无法使用。以下是元组常用的一些方法和操作。

图片

  • 统计元素出现次数count()返回元组中某个元素出现的次数。

my_tuple = (1, 2, 2, 3, 4, 4, 4, 5)
print(my_tuple.count(4))  # 输出: 3
  • 取出某个元素索引index()

返回元素在元组中第一次出现的索引。

my_tuple = ('a', 'b', 'c', 'a')
print(my_tuple.index('a'))  # 输出: 0

2.5 元组的增删改操作说明

元组是不可变的,这意味着无法直接增、删、改元素。然而,这里通过一些间接的方法实现类似操作,比如重新创建元组或转换为列表来进行操作。

图片

  • 增加元素(间接实现)

我们可以通过将元组转换为列表,然后修改列表并再转换回元组来实现增加元素的效果。

my_tuple = (1, 2, 3)
temp_list = list(my_tuple)  # 将元组转换为列表
temp_list.append(4)         # 增加元素
my_tuple = tuple(temp_list) # 重新转换为元组
print(my_tuple)  # 输出: (1, 2, 3, 4)
  • 删除元素(间接实现)

删除元素同样需要先转换为列表。

my_tuple = (10, 20, 30)
temp_list = list(my_tuple)  # 将元组转换为列表
temp_list.remove(20)        # 删除元素
my_tuple = tuple(temp_list) # 重新转换为元组
print(my_tuple)  # 输出: (10, 30)
  • 修改元素(间接实现)

修改元素的逻辑类似,先转换为列表,再进行修改。

my_tuple = (100, 200, 300)
temp_list = list(my_tuple)  # 将元组转换为列表
temp_list[1] = 250          # 修改元素
my_tuple = tuple(temp_list) # 重新转换为元组
print(my_tuple)  # 输出: (100, 250, 300)

2.6 遍历元组

可以使用 for 循环遍历元组中的所有元素。

my_tuple = ('apple', 'banana', 'cherry')
for fruit in my_tuple:
    print(fruit)

2.7 元组的应用场景和总结

应用场景:元组常用于存储固定数据或作为函数的返回值。由于不可变性,它们比列表更安全。总结:元组适用于存储不可更改的数据集合,具有更快的访问速度和内存优化。

3. 元组与列表的比较

特性列表元组
可变性可变不可变
适用场景数据可能需要增删改数据需要保持稳定或作为常量
操作方法多种修改和删除方法限制较多,主要是查询和解包
内存使用相对更高通常更低
  • 可变性:列表是可变的,可以修改、增加、删除元素;元组是不可变的,创建后不能修改。

  • 表示方式:列表使用 [],元组使用 ()。

  • 性能:由于元组的不可变性,它们比列表占用更少的内存,访问速度更快。

  • 应用场景:列表适合需要频繁修改的数据集,元组适合存储固定数据。

    图片

以上是对 列表 和 元组 的详细描述与整理,希望能够帮助你更好地理解和运用这两种数据结构。

希望这份简洁的教程对你理解Python中的列表和元组使用有所帮助!如果你有任何问题,或者希望了解更深入的内容,关注公众号《LKIDTI数据》的《python图解》!或联系我

图片

标签:tuple,python,元素,列表,Python,print,元组,my
From: https://blog.csdn.net/weixin_45014634/article/details/143932288

相关文章

  • 利用 Python 和 Selenium 高效启动和管理 Chrome 浏览器
    在自动化测试和网页抓取的过程中,Selenium是最常用的工具之一。其强大的功能可以与浏览器无缝集成,实现复杂的操作。然而,为了提高效率和扩展性,尤其在处理大量任务时,我们可以通过定制化的方法启动Chrome浏览器并与Selenium驱动连接。本文将详细解析两段关键代码,实现以下目标:......
  • 《Python游戏编程入门》注-第7章
    《Python游戏编程入门》第7章“用精灵实现动画:EscapetheDragon游戏”中通过pygame.sprite模块(精灵)实现了动画效果。1通过精灵实现动画“7.2使用Pygame精灵”中实现了飞龙飞翔的效果,如图1所示。图1飞龙飞翔的效果注意1相关代码及资源,请参考《Python游戏编程入门注-第......
  • 计算机毕业设计源码 python基于爬虫的毕业生兴趣与求职实时智能数据分析
    标题:python基于爬虫的毕业生兴趣与求职实时智能数据分析设计一个基于Python和爬虫技术的毕业生兴趣与求职实时智能数据分析系统,可以帮助高校、企业和毕业生更好地了解就业市场趋势、毕业生兴趣和求职需求,从而优化招聘策略和个人职业规划。以下是一个典型的数据分析系统的主......
  • 计算机毕设设计项目源码 python基于Spark的淘宝服装数据分析系统的设计与实现
    标题:python基于Spark的淘宝服装数据分析系统的设计与实现设计一个基于Python和Spark的淘宝服装数据分析系统,可以帮助商家和平台更好地了解市场趋势、消费者偏好和销售情况,从而优化库存管理和营销策略。以下是一个典型的数据分析系统的主要功能模块:1.系统概述•目标:为淘宝......
  • 【人工智能】Python在机器学习与人工智能中的应用
    Python因其简洁易用、丰富的库支持以及强大的社区,被广泛应用于机器学习与人工智能(AI)领域。本教程通过实用的代码示例和讲解,带你从零开始掌握Python在机器学习与人工智能中的基本用法。1.机器学习与AI的Python生态系统Python拥有多种支持机器学习和AI的库,以下是几个核心库:......
  • Python 实现基于BP神经网络的电力负荷预测模型
    目录1. 项目背景介绍...12. 项目目标与意义...13. 项目挑战...24. 项目特点与创新...25. 项目应用领域...26. 效果预测图程序设计...37. 项目模型架构...38. 项目模型描述...49. 项目模型算法流程图...510. 项目结构设计...511. 项目部署与应......
  • Amazing QR!一款 Python 二维码生成器!
    大家好,我是Java陈序员。如今在生活中,二维码随处可见。信息获取、网站跳转、结账支付……一扫二维码全部搞定。今天,给大家介绍一款基于Python实现的二维码生成器!关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。工具介绍Amazin......
  • 自学Python打卡第二天
    由于本人有一点基础,在昨天直接从python语言基础开始学习,也是把Python的语法特点、Python中的变量以及基本数据类型过了一遍,晚上有感而发又结合基本输入输出做了一些小练习,今天就直接学习运算符与表达式了哈。运算符主要分为五种,分别是算术运算符、赋值运算符、比较(关系)运算符......
  • Python脚本消费多个Kafka topic
    在Python中消费多个Kafkatopic,可以使用kafka-python库,这是一个流行的Kafka客户端库。以下是一个详细的代码示例,展示如何创建一个Kafka消费者,并同时消费多个Kafkatopic。1.环境准备(1)安装Kafka和Zookeeper:确保Kafka和Zookeeper已经安装并运行。(2)安装kafka-python库:通过pip安装k......
  • Centos编译Python3.10解决openssl异常
    问题描述在Linux中进行Python应用部署时,安装Python3.10后,在pip安装依赖出现SSLError异常。(venv)[root@server100flask-app]#pipinstallflaskWARNING:pipisconfiguredwithlocationsthatrequireTLS/SSL,howeverthesslmoduleinPythonisnotavailable.Looki......