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

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.mrgr.cn/news/37256.html

相关文章:

  • sicp每日一题[2.30]
  • Java中的注解处理器:自定义注解与APT工具的应用场景
  • YOLOv8默认使用的优化器是什么?optimizer默认值auto指定的是什么优化器?
  • 【玩转贪心算法专题】738. 单调递增的数字【中等】
  • 【Gitee自动化测试2】Git,TortoiseGit,Github,Gitlab,Gitee
  • 心觉:如何重塑高效学习的潜意识(3)东西很好,但用不起,怎么破?
  • C++学习笔记----8、掌握类与对象(一)---- 对象中的动态内存分配(4)
  • 【项目经验分享】深度学习点云算法毕业设计项目案例定制
  • 【机器学习】探索LSTM:深度学习领域的强大时间序列处理能力
  • Mysql InnoDB引擎的四大核心特性
  • 衡石分析平台系统管理手册-功能配置之全局 CSS 设置
  • Github 2024-09-27 Java开源项目日报Top8
  • python-list-comprehension-find-pair-given-sum-two-arrays
  • 【Python报错已解决】TypeError: tuple indices must be integers or slices, not str
  • 九、子查询
  • 在实时语音交互上超过GPT-4o,端到端语音模型Mini-Omni部署
  • 使用Keras进行图像分类:从入门到精通
  • Deno 1.46
  • 1.6 判定表
  • 网页制作Dreamweaver CC2024集成AI