一、前言
Python是一种高级编程语言,由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名,并且具有强大的功能和广泛的应用领域。Python具有丰富的标准库和第三方库,可以用于开发各种类型的应用程序,包括Web开发、数据分析、人工智能、科学计算、自动化脚本等。
Python本身是一种伟大的通用编程语言,在一些流行的库(numpy,scipy,matplotlib)的帮助下,成为了科学计算的强大环境。本系列将介绍Python编程语言和使用Python进行科学计算的方法,主要包含以下内容:
- Python:基本数据类型、容器(列表、元组、集合、字典)、函数、类
- Numpy:数组、数组索引、数据类型、数组数学、广播
- Matplotlib:绘图,子图,图像
- IPython:创建笔记本,典型工作流程
二、实验环境
Python 3.7
运行下述命令检查Python版本
代码语言:javascript复制 python --version
三、Python容器(Containers)
0、 容器介绍
Python中的容器是用于存储和组织数据的对象。常见的容器包括列表(List)、元组(Tuple)、集合(Set)和字典(Dictionary)。
- 列表是有序的可变容器,可以包含不同类型的元素,使用方括号([])来创建。
my_list = [1, 2, 3, 'a', 'b', 'c']
- 元组是有序的不可变容器,也可以包含不同类型的元素,使用圆括号(())来创建。
my_tuple = (1, 2, 3, 'a', 'b', 'c')
- 集合是无序且不重复的容器,用于存储唯一的元素,使用大括号({})或者set()函数来创建。
my_set = {1, 2, 3, 'a', 'b', 'c'}
- 字典是无序的键值对容器,用于存储具有唯一键的值,使用花括号({})或者dict()函数来创建。
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
这些容器都提供了不同的方法和操作,用于对数据进行存储、访问和处理。可以根据具体的需求选择适合的容器类型。
1、列表(List)
【深度学习】 Python 和 NumPy 系列教程(三):Python容器:1、列表List详解(初始化、索引、切片、更新、删除、常用函数、拆包、遍历)_QomolangmaH的博客-CSDN博客
https://blog.csdn.net/m0_63834988/article/details/132768246?spm=1001.2014.3001.5501
2、元组(Tuple)
【深度学习】 Python 和 NumPy 系列教程(四):Python容器:2、元组tuple详解(初始化、索引和切片、元组特性、常用操作、拆包、遍历)_QomolangmaH的博客-CSDN博客
https://blog.csdn.net/m0_63834988/article/details/132777307?spm=1001.2014.3001.5501
3、集合(Set)
【深度学习】 Python 和 NumPy 系列教程(五):Python容器:3、集合Set详解(初始化、访问元素、常用操作、常用函数)_QomolangmaH的博客-CSDN博客
https://blog.csdn.net/m0_63834988/article/details/132779181?spm=1001.2014.3001.5502
4、字典(Dictionary)
0. 基本概念
字典(Dictionary)是一种可变的、无序的键值对集合。字典中的元素由键(key)和对应的值(value)组成,每个键和值之间使用冒号(:)进行分隔,整个键值对使用逗号(,)进行分隔,并且整个字典被包含在花括号({})中。
- 键值对 (key, value):键是数据索引的扩展。
- 键:不可变数据类型
- 数字(整数/浮点数)、字符串、元组等
- 值:任意数据类型
- 键:不可变数据类型
- 基本模式:{<键1>:<值1>, <键2>:<值2>, … , <键n>:<值n>}
1. 初始化
a. 使用{}
创建字典
使用花括号({})来创建一个空字典,或者使用键值对的形式来初始化一个非空字典。
代码语言:javascript复制# 创建一个空字典
empty_dict = {}
# 创建一个非空字典
student = {"name": "John", "age": 20, "grade": "A"}
b. 使用dict()
函数创建字典
dict()
函数,可以通过传递键值对的参数或者通过可迭代对象(如元组或列表)来创建字典。
- 通过参数
student = dict(name="John", age=20, grade="A")
- 通过可迭代对象
student_info = [("name", "John"), ("age", 20), ("grade", "A")]
student = dict(student_info)
2. 访问字典元素
a. 使用方括号 []
可以通过键来访问字典中的值。
代码语言:javascript复制student = {"name": "John", "age": 20, "grade": "A"}
print(student["name"])
print(student["age"])
输出结果为:
代码语言:javascript复制John
20
b. 使用 get()
方法
get()
方法可以接受一个键作为参数,并返回对应的值。如果键不存在于字典中,get()
方法会返回 None
,或者可以提供一个默认值作为 get()
方法的第二个参数,用于在键不存在时返回。
student = {"name": "John", "age": 20, "grade": "A"}
print(student.get("name"))
print(student.get("address", "N/A"))
输出结果为:
代码语言:javascript复制John
N/A
3. 字典常用操作
a. 添加或修改元素
使用赋值语句来添加或修改字典中的元素。
代码语言:javascript复制student = {"name": "John", "age": 20, "grade": "A"}
student["age"] = 21 # 修改年龄
student["address"] = "123 Main St" # 添加地址
print(student)
输出结果为:
代码语言:javascript复制{'name': 'John', 'age': 21, 'grade': 'A', 'address': '123 Main St'}
b. 删除元素
使用del
语句或pop()
方法来删除字典中的元素。
student = {"name": "John", "age": 20, "grade": "A"}
del student["age"] # 删除年龄
student.pop("grade") # 删除成绩
print(student)
输出结果为:
代码语言:javascript复制{'name': 'John'}
c. 判断键是否存在
使用in
关键字来判断字典中是否存在指定的键。
student = {"name": "John", "age": 20}
print("name" in student) # True
print("grade" in student) # False
输出结果为:
代码语言:javascript复制True
False
d. 字典长度
代码语言:javascript复制student = {"name": "John", "age": 20, "grade": "A"}
length = len(student)
print(length) # 输出:3
在上述示例中,我们使用len()
函数来获取字典student
的长度,然后将结果打印出来。结果为3,表示字典中有3个键值对。
4. 字典常用函数
keys()
:返回字典中所有键
values()
:返回字典中所有值
items()
:返回字典中所有键值对
copy()
:复制字典
clear()
:清空字典中的所有元素
student = {"name": "John", "age": 20, "grade": "A"}
print(student.keys())
print(student.values())
print(student.items())
student_copy = student.copy()
student.clear()
print(student_copy)
print(student)
输出结果为:
代码语言:javascript复制dict_keys(['name', 'age', 'grade'])
dict_values(['John', 20, 'A'])
dict_items([('name', 'John'), ('age', 20), ('grade', 'A')])
{'name': 'John', 'age': 20, 'grade': 'A'}
{}
5. 遍历
a. 遍历键(Keys)
可以使用keys()
方法获取字典中所有的键,并进行遍历。示例如下:
student = {"name": "John", "age": 20, "grade": "A"}
for key in student.keys():
print(key)
输出结果为:
代码语言:javascript复制name
age
grade
b. 遍历值(Values)
可以使用values()
方法获取字典中所有的值,并进行遍历。示例如下:
student = {"name": "John", "age": 20, "grade": "A"}
for value in student.values():
print(value)
输出结果为:
代码语言:javascript复制John
20
A
c. 遍历键值对(Items)
可以使用items()
方法获取字典中所有的键值对,并进行遍历。示例如下:
student = {"name": "John", "age": 20, "grade": "A"}
for key, value in student.items():
print(key, value)
输出结果为:
代码语言:javascript复制name John
age 20
grade A
6. 字典解析
将for循环和创建新元素的代码合并成一行,使其自动附加新元素。
代码语言:javascript复制original_dict = {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}
new_dict = {key: value for key, value in original_dict.items() if value % 2 == 0}
print(new_dict)
输出:
代码语言:javascript复制{'b': 2, 'd': 4}