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

DAY 24 元组和OS模块

1. 元组

1.1 概念

元组是 Python 中一种不可变的序列类型,使用圆括号 () 表示,元素之间用逗号分隔。由于其不可变性,元组在创建后不能修改元素的值、添加或删除元素。

代码示例
# 创建元组
empty_tuple = ()  # 空元组
single_element_tuple = (1,)  # 只有一个元素的元组,注意逗号不能省略
normal_tuple = (1, 2, 'hello', True)# 访问元组元素
print(normal_tuple[0])  # 输出: 1# 元组解包
a, b, c, d = normal_tuple
print(a)  # 输出: 1# 元组切片
print(normal_tuple[1:3])  # 输出: (2, 'hello')
1.2 哈希和字典键
  • 由于元组是不可变的,可作为字典的键,这在存储模型配置或实验结果时非常有用。
# 存储不同模型配置的准确率
model_configs = {('random_forest', 100, 5): 0.85,('logistic_regression', 0.1): 0.82
}
print(model_configs[('random_forest', 100, 5)])  # 输出: 0.85
1.3 应用场景
  • 函数返回多个值:函数可以返回一个元组,调用者通过元组解包获取多个返回值。
  • 数据不可变需求:当数据不希望被修改时,使用元组存储数据,保证数据的安全性。

2. 可迭代对象

2.1 概念

可迭代对象是指能够一次返回一个元素的对象,Python 中很多数据类型都是可迭代对象,如列表、元组、字符串、字典等。可迭代对象可以用于 for 循环、iter() 函数等。

代码示例
# 列表作为可迭代对象
my_list = [1, 2, 3]
for item in my_list:print(item)# 字符串作为可迭代对象
my_string = "hello"
for char in my_string:print(char)# 使用 iter() 和 next() 函数
my_iter = iter(my_list)
print(next(my_iter))  # 输出: 1
print(next(my_iter))  # 输出: 2
2.2 应用场景
  • 循环遍历:在 for 循环中使用可迭代对象遍历数据。
  • 生成器:生成器是一种特殊的可迭代对象,用于按需生成数据,节省内存。

3. os 模块

3.1 概念

os 模块是 Python 标准库中的一个模块,提供了与操作系统进行交互的功能,如文件和目录操作、环境变量管理等。

代码示例
import os# 获取当前工作目录
current_dir = os.getcwd()
print(current_dir)# 创建目录
new_dir = "new_directory"
if not os.path.exists(new_dir):os.mkdir(new_dir)# 列出目录中的文件和子目录
file_list = os.listdir(current_dir)
print(file_list)# 拼接路径
new_path = os.path.join(current_dir, new_dir)
print(new_path)# 删除目录
if os.path.exists(new_dir):os.rmdir(new_dir)
3.2 应用场景
  • 文件管理:创建、删除、重命名文件和目录。
  • 路径处理:拼接、拆分、获取文件路径的各个部分。
  • 环境变量管理:获取和设置系统环境变量。
http://www.xdnf.cn/news/5848.html

相关文章:

  • 思极地图使用
  • 《算法导论(第4版)》阅读笔记:p39-p48
  • 基于STM32、HAL库的ADAU1701JSTZ音频接口芯片驱动程序设计
  • 【23种设计模式】模式背后运用的技术对照
  • 【Android】下拉刷新组件Swiperefreshlayout
  • 将 swagger 接口导入 apifox 查看及调试
  • android 权限配置
  • ThingsBoard(TODO)
  • 无人机失联保护模块技术解析!
  • 汽车工厂数字孪生实时监控技术从数据采集到三维驱动实现
  • 【神经网络与深度学习】通俗易懂的介绍非凸优化问题、梯度消失、梯度爆炸、模型的收敛、模型的发散
  • 【AI News | 20250513】每日AI进展
  • 贝叶斯优化Transformer融合支持向量机多变量时间序列预测,Matlab实现
  • 遨游卫星电话与普通手机有什么区别?
  • 【学习笔记】计算机操作系统(三)—— 处理机调度与死锁
  • 深入探讨 Java 性能术语与优化实践
  • TDengine 做为 Spark 数据源
  • 鸿蒙 PC 发布之后,想在技术上聊聊它的未来可能
  • 【redis】CacheAside的数据不一致性问题
  • 【Linux学习笔记】理解一切皆文件实现原理和文件缓冲区
  • MES管理系统构建智能制造时代下的全面质量管理体系
  • 半小时快速入门Spring AI:使用腾讯云编程助手CodeBuddy 开发简易聊天程序
  • 计算机视觉----时域频域在图像中的意义、傅里叶变换在图像中的应用、卷积核的频域解释
  • CSRF防范歪招
  • 互联网大厂Java求职面试:优惠券服务架构设计与AI增强实践-5
  • BlockMesh Ai项目 监控节点部署教程
  • 在 Linux 系统中过滤文件中的字符串
  • 尼康VR镜头防抖模式NORMAL和ACTIVE的区别(私人笔记)
  • supabase 怎么新建项目?
  • STM32H743输出50%的占空比波形