一、列表、元组、集合、字典的区别
参考自python官方参考文档5. 数据结构 — Python 3.8.18 文档
数据类型 | 是否有序 | 是否允许重复 | 是否修改 | 是否可使用索引获取元素 |
列表 | 有序 | 允许 | 可修改 | 可使用数字索引 |
元组 | 有序 | 允许 | 不可修改 | 可使用数字索引 |
集合 | 无序 | 不允许 | 可修改 | 无索引 |
字典 | 无序 | 不允许 | 可修改 | 有指定索引,无默认的数字索引 |
列表
list = [ "广东", "江西", "广西"]
元组
tuple = ("广东", "江西", "广西")
集合
set = {"广东", "江西", "广西"}
字典
dic = {
"d_1":"广东",
"d_2":"江西",
"d_3":"广西"
}
列表和元组都是属于序列类型的,即有序的。但列表有序可更改且一般是同一类型的元素;元组是有序不可更改且一般包含不同种类的元素。
集合是由不重复元素组成的无序的集,我们可以对集合对象求并集、交集、差集、对称差分的运算
字典即是键值对,键一般为字符串or数字等不可变类型。
列表、元组、集合三者形式上的区别就在于列表中括号、元组小括号、集合花括号
二、Module和Package和Library的区别与联系
模块(Module)
是最基本的组织单元,一个模块对应一个.py
文件。
包(Package)
是一种组织多个模块的方式,它是一个包含若干模块及相关资源(包括其他子包)的目录结构。在该目录下,有一个特殊的__init__.py
(在Python 3.3及更高版本中,即使为空文件也不再是必需的,但仍可以用于初始化包的行为)文件指示这是一个包。
模块和包关系示例
my_library/
__init__.py
submodule1.py
submodule2.py
subpackage/
__init__.py
deeper_module.py
在这个例子中:
my_library
是一个包,它包含了两个模块 submodule1
和 submodule2
。
subpackage
也是一个包,它是 my_library
包下的一个子包,内部又包含了 deeper_module
这个模块。
库(Library)
通常是指一组协同工作的模块或包,它可能是一个单一的大型模块,也可能是一个复杂的包含多个包和模块的集合体。在实际使用中,当我们说“库”时,往往指的是一个可以被其他项目引用以实现某种功能的软件组件,这个组件可能是由单个模块组成,也可能是由一个或多个包及其下属模块组成。
三者的逻辑关系
库 (可能包含)
└── 包
├── 模块1
├── 模块2
└── 子包
└── 模块3
但实际上,“库”并不一定具有严格的物理结构,它更多是一种功能性和实用性的概念,而模块和包则是在Python文件系统和导入机制中有明确的定义和结构的实体。
三、OS库中常用函数
1、os.path.join()函数
相对路径和绝对路径:
linux和unix系统中使用正斜杠"/",而windows系统中使用反斜杠"\"作为路径分隔。"./"代表当前目录。 "../"表示当前目录的上级目录,即当前的父目录。绝对路径,从根目录为起点到某一个目录的路径;相对路径,从一个目录为起点到另外一个的目录的路径。举例子:
返回值:将多个路径组合后返回。
2、os.makedirs(name, mode=0o777, exist_ok=False)函数
用于创建多层目录
3、with open() as f的用法
参照博客【Python杂项】with open() as f的用法_with open as f用法-CSDN博客
python文件读写,以后就用with open语句
读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。
常见的读写操作:
with open('filename.txt', 'r') as f:
content = f.read(f) #文件的读操作
with open('data.txt', 'w') as f:
f.write('hello world') #文件的写操作
相关参数:
r: # 以只读方式打开文件。文件的指针将会放在文件的开头。这是**默认模式**。
rb: # 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+: # 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+: # 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w: # 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb: # 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+: # 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+: # 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a: # 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab: # 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+: # 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+: # 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
四、pandas库中常用函数
1、pd.read_csv
用于读取CSV(逗号分隔值)文件并将其转换为DataFrame。
read_csv函数有很多参数,关于参数可以参考详解pandas的read_csv方法 - 知乎 (zhihu.com)
2、iloc方法
iloc[a,b]:取行索引为a列索引为b的数据。iloc[a:b,c:d]:取行索引从a到b-1,列索引从c到d-1的数据。