当前位置: 首页 > article >正文

2:数据结构:列表与元组

目录

2.1 列表的创建与操作

2.1.1 列表的创建

2.1.2 列表的常用操作

2.1.3 列表切片操作

2.2 元组的特点与用法

2.2.1 元组的创建

2.2.2 元组与列表的区别

2.2.3 元组的常用操作

2.3 示例代码与练习

2.3.1 示例代码:列表与元组的基本操作

2.3.2 练习题

文章 3:数据结构:字典与集合

3.1 字典的创建与常用操作

3.1.1 字典的创建

3.1.2 字典的常用操作

3.1.3 字典的应用场景

3.2 集合的基本操作

3.2.1 集合的创建

3.2.2 集合的常用操作

3.2.3 集合的应用场景

3.3 示例代码与应用场景

3.3.1 示例代码:字典与集合的操作

3.3.2 练习题


2.1 列表的创建与操作

列表(List) 是 Python 中最常用的数据结构之一。它是一个可变的序列,支持任意类型的数据元素,可以动态调整长度。这使得列表非常适合用来存储和操作一组有序数据。

2.1.1 列表的创建

你可以通过以下几种方式创建列表:

  1. 直接创建空列表:

     
    my_list = []
    

  2. 创建包含元素的列表:

     
    my_list = [1, 2, 3, 4, 5]
    

  3. 通过 list() 函数将其他数据结构转换为列表:

     
    my_list = list("hello")
    # 结果:['h', 'e', 'l', 'l', 'o']
    

2.1.2 列表的常用操作
操作类型操作方法示例
访问元素my_list[index]my_list[0] 返回列表第一个元素
添加元素my_list.append(element)my_list.append(6) 将 6 添加到列表末尾
插入元素my_list.insert(index, element)my_list.insert(1, 'Python') 在索引1插入
删除元素my_list.remove(element)my_list.remove(3) 删除元素3
列表长度len(my_list)len(my_list) 返回列表长度
列表排序my_list.sort()my_list.sort() 对列表进行升序排序
2.1.3 列表切片操作

列表支持切片操作,可以通过指定起始和结束索引来访问部分元素:

 
my_list = [10, 20, 30, 40, 50]
sub_list = my_list[1:4]  # 结果:[20, 30, 40]

你还可以通过步长指定跳跃性访问:

 
my_list = [10, 20, 30, 40, 50, 60]
sub_list = my_list[::2]  # 结果:[10, 30, 50]

2.2 元组的特点与用法

元组(Tuple) 与列表类似,但它是不可变的,这意味着元组一旦创建,不能修改其内容。这种不可变性使得元组在需要确保数据安全或不可变的场景中非常有用。

2.2.1 元组的创建

你可以通过以下几种方式创建元组:

  1. 直接创建空元组:

     
    my_tuple = ()
    

  2. 创建包含元素的元组:

     
    my_tuple = (1, 2, 3)
    

  3. 通过 tuple() 函数将其他数据结构转换为元组:

     
    my_tuple = tuple([1, 2, 3])
    

2.2.2 元组与列表的区别
特性列表(List)元组(Tuple)
可变性可变(可以修改、添加、删除)不可变(创建后不能修改内容)
创建方式[]list()()tuple()
适用场景需要频繁修改数据的场景需要保持数据安全不可变的场景
2.2.3 元组的常用操作

尽管元组是不可变的,但仍然支持一些基本操作:

操作类型操作方法示例
访问元素my_tuple[index]my_tuple[0] 返回元组第一个元素
切片操作my_tuple[start:end]my_tuple[1:3] 返回元组部分切片
拼接元组my_tuple1 + my_tuple2将两个元组合并为一个新元组
查询元素element in my_tuple3 in my_tuple 返回是否存在
2.3 示例代码与练习
2.3.1 示例代码:列表与元组的基本操作
 
# 列表操作示例
my_list = [1, 2, 3, 4]
my_list.append(5)
print("列表内容:", my_list)

# 元组操作示例
my_tuple = (10, 20, 30)
print("元组内容:", my_tuple)

2.3.2 练习题
  1. 创建一个包含 5 个数字的列表,尝试使用 append()insert()remove() 方法对其进行修改,并打印结果。
  2. 创建一个包含 3 个元素的元组,尝试使用切片操作获取其中部分元素,并拼接另一个元组。

文章 3:数据结构:字典与集合

3.1 字典的创建与常用操作

字典(Dictionary) 是一种键值对(key-value pair)的数据结构。每个键都是唯一的,可以通过键快速访问对应的值。字典非常适合存储无序的关联数据。

3.1.1 字典的创建
  1. 直接创建空字典:

    my_dict = {}
    
  2. 创建带有键值对的字典:

    my_dict = {'name': 'Alice', 'age': 25}
    
  3. 通过 dict() 函数创建字典:

    my_dict = dict([('name', 'Alice'), ('age', 25)])
    
3.1.2 字典的常用操作
操作类型操作方法示例
访问值my_dict[key]my_dict['name'] 返回对应的值
添加或更新键值对my_dict[key] = valuemy_dict['age'] = 30 更新键为 'age' 的值
删除键值对my_dict.pop(key)my_dict.pop('name') 删除键 'name'
遍历字典for key, value in my_dict.items()遍历所有键值对
3.1.3 字典的应用场景

字典非常适合存储无序的关联数据,例如学生成绩、商品价格等。以下是一个简单的字典应用示例:

 
student_grades = {'Alice': 85, 'Bob': 92, 'Charlie': 78}
for student, grade in student_grades.items():
    print(f"{student} 的成绩是 {grade}")

3.2 集合的基本操作

集合(Set) 是一种无序、不重复的元素集合。它适合用于去重和集合运算,如交集、并集等。

3.2.1 集合的创建
  1. 直接创建空集合:

    my_set = set()
    
  2. 创建带有元素的集合:

    my_set = {1, 2, 3, 4}
    
3.2.2 集合的常用操作
操作类型操作方法示例
添加元素my_set.add(element)my_set.add(5) 将 5 添加到集合
删除元素my_set.remove(element)my_set.remove(3) 删除元素 3
并集操作my_set1.union(my_set2)返回两个集合的并集
交集操作my_set1.intersection(my_set2)返回两个集合的交集
3.2.3 集合的应用场景

集合可以用来快速去重,或进行集合运算。以下是一个使用集合进行去重的例子:

numbers = [1, 2, 3, 3, 4, 4, 5]
unique_numbers = set(numbers)
print("去重后的结果:", unique_numbers)
3.3 示例代码与应用场景
3.3.1 示例代码:字典与集合的操作
 
# 字典操作示例
my_dict = {'name': 'Alice', 'age': 25}
my_dict['age'] = 30
print("字典内容:", my_dict)

# 集合操作示例
my_set = {1, 2, 3, 4}
my_set.add(5)
print("集合内容:", my_set)

3.3.2 练习题
  1. 创建一个字典,存储 3 个学生的姓名和成绩,尝试使用 items() 方法遍历字典并打印每个学生的成绩。
  2. 创建两个集合,分别包含 5 个数字,尝试进行并集和交集操作,并打印结果。

 

 


http://www.kler.cn/news/323281.html

相关文章:

  • 初识Tomcat
  • 【git lfs 问题记录】
  • 大数据复习知识点1
  • 独立站如何批量查收录?常用的3个的方法及其具体操作步骤
  • Linux学习笔记之重点概念、实用技巧和常见问题解答。
  • debian linux 只安装mysql client
  • 《AI办公类工具PPT系列之六——轻竹办公》
  • 从静态多态、动态多态到虚函数表、虚函数指针
  • 深度学习------------------------RNN(循环神经网络)
  • OJ在线评测系统 在Linux虚拟机搭建Docker 概念 入门 安装
  • 代码随想录算法训练营Day13
  • 代码为笔,合作作墨,共绘共赢画卷———未来之窗行业应用跨平台架构
  • 【论文阅读】StoryMaker | 更全面的人物一致性开源工作
  • element-plus中日历组件设置起始为周一
  • git配置ssh免密
  • 【JavaEE】——多重锁,死锁问题和解决思路
  • vue3学习记录-computed
  • OJ在线评测系统 后端判题机架构搭建 使用原生实现Java安全管理器环境隔离
  • python用两类循环嵌套打印正置九九乘法口诀表和倒置九九乘法口诀表
  • 网络资源模板--Android Studio 图书借阅App
  • 基于Hive和Hadoop的电信流量分析系统
  • 网站建设中,营销型网站与普通网站有什么区别
  • 第四周做题总结_数据结构_栈与应用
  • 分页查询的优化
  • 小爱心换着玩
  • 【python】横截面数据分析及可视化报告示例
  • 拉格朗日插值讲解与MATLAB例程
  • (24)k8s部署mysql
  • django基于python的房价分析可视化系统的设计与开发 h1y0i
  • 洗浴中心澡堂污水处理设备主要包括以下几个步骤