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

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 应用场景
  • 文件管理:创建、删除、重命名文件和目录。
  • 路径处理:拼接、拆分、获取文件路径的各个部分。
  • 环境变量管理:获取和设置系统环境变量。

相关文章:

  • Visual studio 打包方法
  • Nacos源码—9.Nacos升级gRPC分析七
  • MySQL 8.0 OCP 英文题库解析(四)
  • docker 快速部署若依项目
  • SimScape物理建模实例2--带控制的单质量弹簧阻尼系统
  • Linux云计算训练营笔记day07(MySQL数据库)
  • MySQL 8.0 OCP 1Z0-908 51-60题
  • SSH免密登录的5种实现方法
  • k8s初始化时候,报错无法通过 CRI(容器运行时接口)与 containerd 通信
  • 2025.05.10京东机考真题算法岗-第二题
  • 【数据结构】——栈和队列OJ
  • TCP核心机制
  • list基础用法
  • Docker疑难杂症解决指南
  • ThingsBoard3.9.1 MQTT Topic(4)
  • python常用算法总结(下)
  • 基于STM32、HAL库的TLV320AIC3101IRHBR音频接口芯片驱动程序设计
  • [250512] Node.js 24 发布:ClangCL 构建,升级 V8 引擎、集成 npm 11
  • webservice获取全国省份区县编码(拼音全拼+拼音简写)
  • linux 抓包工具tcpdump使用小记(使用时注意权限和系统资源)
  • 俄官员说将适时宣布与乌克兰谈判代表
  • 王毅谈中拉论坛十年成果
  • 220名“特朗普币”持有者花1.48亿美元,获邀与特朗普共进晚餐
  • 讲一个香港儿童的故事,《劏房的天空》获“周庄杯”特等奖
  • 夜读丨取稿费的乐趣
  • 张笑宇:物质极大丰富之后,我们该怎么办?