首页 > 编程语言 >数据结构_python

数据结构_python

时间:2024-11-28 18:32:29浏览次数:10  
标签:python 元素 list 元组 集合 print 数据结构 my

在Python中,数据结构是用来存储和管理数据的容器。Python提供了四种内建的数据结构:列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)。每种数据结构都有其特点和适用场景,理解它们对于编写高效、易于维护的代码至关重要。

4.1 列表(List)

列表是Python最常用的数据结构之一,它是一个可变的、有序的集合,可以存储不同类型的元素。列表支持元素的添加、删除、修改等操作。

4.1.1 创建列表

使用方括号 [] 来定义一个列表,元素之间用逗号隔开。

示例

# 创建一个包含不同类型元素的列表
my_list = [1, 2.5, "Hello", True]
print(my_list)

4.1.2 索引与切片

  • 列表是有序的,可以通过索引访问其中的元素。
  • 列表索引从0开始,支持负索引(从列表末尾开始倒数)。

示例

# 索引访问元素
print(my_list[0])    # 输出 1
print(my_list[-1])   # 输出 True (最后一个元素)

# 切片操作,获取部分列表
print(my_list[1:3])  # 输出 [2.5, 'Hello'](从索引1到索引3,但不包括索引3)

4.1.3 常用操作

  • 添加元素
    • append():将元素添加到列表末尾。
    • insert():在指定位置插入元素。

示例

# 添加元素
my_list.append("Python")
print(my_list)  # [1, 2.5, 'Hello', True, 'Python']

# 插入元素
my_list.insert(1, "Inserted")  
print(my_list)  # [1, 'Inserted', 2.5, 'Hello', True, 'Python']
  • 删除元素
    • remove():删除指定的元素。
    • pop():删除指定索引位置的元素,并返回该元素。

示例

# 删除指定元素
my_list.remove("Hello")
print(my_list)  # [1, 'Inserted', 2.5, True, 'Python']

# 删除指定索引的元素
popped_item = my_list.pop(2)
print(popped_item)  # 2.5
print(my_list)  # [1, 'Inserted', True, 'Python']
  • 修改元素: 直接通过索引修改列表中的元素。

示例

# 修改元素
my_list[1] = "Modified"
print(my_list)  # [1, 'Modified', True, 'Python']

4.2 元组(Tuple)

元组是Python中的另一种有序数据结构,和列表非常相似,但元组是不可变的(immutable)。一旦创建,就不能修改其内容。这使得元组在某些情况下比列表更安全和高效。

4.2.1 创建元组

元组使用圆括号 () 定义,元素之间用逗号隔开。

示例

# 创建元组
my_tuple = (1, 2.5, "Hello", True)
print(my_tuple)

4.2.2 使用场景

由于元组是不可变的,它们通常用于存储那些不需要更改的数据。常见的使用场景包括:

  • 存储常量数据
  • 函数返回多个值(例如,返回多个结果时,可以用元组返回)
  • 用作字典的键(因为元组是不可变的,可以作为哈希值)

示例

# 使用元组存储不变的数据
coordinates = (10.0, 20.0)

4.2.3 元组的操作

由于元组不可变,所以无法进行修改、添加或删除操作。可以通过索引和切片来访问元素。

示例

# 索引访问
print(my_tuple[0])  # 输出 1
# 切片操作
print(my_tuple[1:3])  # 输出 [2.5, 'Hello']

4.3 字典(Dictionary)

字典是一个无序的键值对集合,Python中的字典由键(key)和值(value)组成。字典是可变的,可以动态地添加、删除和更新键值对。

4.3.1 创建字典

字典使用花括号 {} 定义,键和值之间用冒号 : 分隔,多个键值对用逗号隔开。

示例

# 创建字典
my_dict = {"name": "Alice", "age": 25, "is_student": True}
print(my_dict)

4.3.2 字典的常用操作

  • 查找元素:通过键来访问值。
  • 更新元素:修改现有键对应的值。
  • 添加元素:添加新的键值对。
  • 删除元素:使用 del 删除指定的键值对。

示例

# 查找元素
print(my_dict["name"])  # 输出 Alice

# 更新元素
my_dict["age"] = 26
print(my_dict)  # {'name': 'Alice', 'age': 26, 'is_student': True}

# 添加元素
my_dict["city"] = "New York"
print(my_dict)  # {'name': 'Alice', 'age': 26, 'is_student': True, 'city': 'New York'}

# 删除元素
del my_dict["is_student"]
print(my_dict)  # {'name': 'Alice', 'age': 26, 'city': 'New York'}

4.4 集合(Set)

集合是一个无序、不可重复的元素集合。集合不支持索引、切片等操作,但它提供了许多强大的数学集合操作,如并集、交集、差集等。

4.4.1 创建集合

集合使用花括号 {} 或 set() 函数创建。注意,集合中的元素不能重复。

示例

# 创建集合
my_set = {1, 2, 3, 4, 5}
print(my_set)

# 创建空集合
empty_set = set()
print(empty_set)

4.4.2 集合的常用操作

  • 添加元素:使用 add() 方法添加单个元素。
  • 删除元素:使用 remove() 或 discard() 方法。
  • 集合运算:支持并集、交集、差集等操作。

示例

# 添加元素
my_set.add(6)
print(my_set)  # {1, 2, 3, 4, 5, 6}

# 删除元素
my_set.remove(2)  # 移除元素 2
print(my_set)  # {1, 3, 4, 5, 6}

# 交集
set1 = {1, 2, 3}
set2 = {2, 3, 4}
print(set1 & set2)  # {2, 3}

# 并集
print(set1 | set2)  # {1, 2, 3, 4}

# 差集
print(set1 - set2)  # {1}

4.4.3 使用场景

集合通常用于需要去重的场景,比如去除列表中的重复元素,或进行集合运算(如并集、交集等)。

示例

# 去重操作
my_list = [1, 2, 2, 3, 4, 4, 5]
unique_items = set(my_list)
print(unique_items)  # {1, 2, 3, 4, 5}

小结

  • 列表(List):有序、可变的集合,支持索引、切片、添加、删除和修改操作。
  • 元组(Tuple):有序、不可变的集合,适用于存储不变的数据,常用作函数返回值或字典的键。
  • 字典(Dictionary):无序的键值对集合,支持高效的查找、更新和删除操作,适合存储关联数据。
  • 集合(Set):无序、不重复的元素集合,支持并集、交集等数学运算,常用于去重或集合运算。

掌握这些数据结构将大大提高你处理数据的能力,让你在编写Python程序时更加高效和灵活。

标签:python,元素,list,元组,集合,print,数据结构,my
From: https://blog.csdn.net/weixin_70285813/article/details/144117846

相关文章

  • 深入解析:使用Python爬取Bilibili视频
    深入解析:使用Python爬取Bilibili视频前提声明爬虫应遵守目标网站的robots.txt协议,尊重版权和用户隐私。本代码仅供学习和研究使用,不得用于商业用途。请确保在合法合规的前提下使用本代码。本代码所爬视频为公开可下载的视频目录前提声明引言环境准备代码解析1.导入必......
  • 数据结构(汇总)
    1.1.1基本概念数据:数据是信息的载体,是描述客观事物属性的字、字符及所有能输入到计算机并且被计算机程序识别和处理的符号的集合。(数据是计算机程序加工的原料)数据元素、数据项:数据元素是数据的基本单位,一个数据元素可由若干个数据项组成,数据项是构成数据元素的不可分割的......
  • 简易压缩算法一种字符串压缩表示的解压(Java & Python& JS & C++ & C )
    题目描述有一种简易压缩算法:针对全部为小写英文字母组成的字符串,将其中连续超过两个相同字母的部分压缩为连续个数加该字母其他部分保持原样不变.例如字符串aaabbccccd经过压缩变成字符串3abb4cd请您编写解压函数,根据输入的字符串,判断其是否为合法压缩过的字符串......
  • python进阶-04-Python Scrapy带你掌握Python Scrapy(2.12)爬虫框架,附带实战
    python进阶-04-一篇带你掌握PythonScrapy(2.12)爬虫框架,附带实战一.简介在Python进阶系列我们来介绍Scrapy框架最新版本2.12,远超市面上的老版本,Scrapy框架在爬虫行业内鼎鼎大名,在学习之前我想请大家思考Scrapy究竟能解决什么问题?或者能爬哪一类型的网站!还有针对Scrapy的局......
  • 浙大版《数据结构学习与实验指导(第2版)》题目集-基础实验4-2.8 部落
    题目:基础实验4-2.8部落分数25作者 陈越单位 浙江大学在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。......
  • windows安装两个版本的python、pip换源
    一、官网下载两个版本的pythonpython-3.13.0-amd64.exepython-2.7.13.amd64.msi二、安装1、安装时建议不勾选自动添加path环境变量2、安装时自定义安装目录分别为 C:\Python2和 C:\Python33、安装后,把C:\Python2下的 python.exe重命名为 pyth......
  • 【图像处理】用Python和OpenCV实现简单的图像增强与特征提取
    《PythonOpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门!图像处理是计算机视觉领域的重要基础,而图像增强和特征提取是其中的关键技术。本文将详细探讨如何使用Python和OpenCV实现图像增强与特征提取。通过具体示例,我们将介绍滤波、直方图均衡化、边缘检测、......
  • Python中的函数缓存与记忆化技术:提升性能的必备技能
    《PythonOpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门!在软件开发中,性能优化是永恒的主题,而函数缓存与记忆化技术(Memoization)是提升代码性能的常用手段。它们通过存储函数调用的计算结果,避免重复计算,从而显著提高程序运行效率。Python提供了内置工具(如functo......
  • 最新毕设-SpringBoot-共享自习室管理系统-20672(免费领项目)可做计算机毕业设计JAVA、PH
    摘要随着现代社会竞争压力的增加以及学习需求的提升,学生们对于高效自习场所的需求日益增长。而基于springboot的共享自习室管理系统的设计与实现将为学生提供一个便捷、高效的共享自习环境,提升学生自习效率和体验。该系统可以为学生们提供在线讲座的渠道,实现在线进行预约位置......
  • python学习笔记09 python中的运算符
    上一篇记录中我们学习了介绍python中的进制、进制转换、原码反码补码这一篇我们来介绍python中的各类运算符及使用运算符操作数:参与运算的变量或者常量或具体的数值操作符:将参与运算的量连接起来的符号表达式:由操作数和操作符构成且符合python语法规范的式子,不同的操......