Python 是一种广泛使用的高级编程语言,因其简洁明了的语法和强大的功能而受到许多开发者和数据科学家的青睐。本文将从基础的变量与类型开始,逐步深入到数据结构,帮助读者建立起扎实的Python编程基础。
变量与类型1. 变量概念
变量是程序中用来存储数据的名称。在Python中,变量不需要预先声明类型,Python会根据赋值自动推断变量类型。
2. 基本数据类型
Python 中的基本数据类型有:
- 整型(int):表示整数。
- 浮点型(float):表示十进制数字。
- 布尔型(bool):表示逻辑值,True或False。
- 字符串(str):表示文本,由引号包围的一系列字符组成。
- 列表(list):一种有序的可变集合。
- 元组(tuple):一种有序的不可变集合。
- 字典(dict):键值对形式的数据结构,键是唯一的。
- 集合(set):一种无序的不重复元素集。
3. 变量类型转换
在Python中,可以通过内置函数进行类型转换。
# 整型转换
num = 5
str_num = str(num) # 整型转换为字符串
print(str_num) # 输出 "5"
# 浮点型转换
float_num = 3.14
int_num = int(float_num) # 浮点型转换为整型
print(int_num) # 输出 3
# 布尔型转换
bool_val = bool("Hello") # 字符串转换为布尔型
print(bool_val) # 输出 True
数据结构
1. 列表(List)
列表是一种有序的可变序列,可以包含多种数据类型的元素。
# 创建列表
my_list = [1, 2, "three", "four"]
print(my_list) # 输出 [1, 2, 'three', 'four']
# 访问元素
print(my_list[0]) # 输出 1
# 修改元素
my_list[1] = 20
print(my_list) # 输出 [1, 20, 'three', 'four']
# 添加元素
my_list.append("five")
print(my_list) # 输出 [1, 20, 'three', 'four', 'five']
# 删除元素
del my_list[2]
print(my_list) # 输出 [1, 20, 'four', 'five']
2. 元组(Tuple)
元组与列表类似,但是元组是不可变的,即一旦创建,就不能修改。
# 创建元组
my_tuple = (1, 2, "three", "four")
print(my_tuple) # 输出 (1, 2, 'three', 'four')
# 访问元素
print(my_tuple[1]) # 输出 2
# 元组是不可变的,不能修改
# my_tuple[1] = 20 # 报错
3. 字典(Dictionary)
字典是一种键值对的数据结构,键必须是唯一的。
# 创建字典
my_dict = {"name": "Alice", "age": 25, "city": "Shanghai"}
print(my_dict) # 输出 {'name': 'Alice', 'age': 25, 'city': 'Shanghai'}
# 访问元素
print(my_dict["name"]) # 输出 Alice
# 修改元素
my_dict["age"] = 26
print(my_dict) # 输出 {'name': 'Alice', 'age': 26, 'city': 'Shanghai'}
# 添加元素
my_dict["job"] = "Engineer"
print(my_dict) # 输出 {'name': 'Alice', 'age': 26, 'city': 'Shanghai', 'job': 'Engineer'}
# 删除元素
del my_dict["city"]
print(my_dict) # 输出 {'name': 'Alice', 'age': 26, 'job': 'Engineer'}
4. 集合(Set)
集合是不重复元素的无序集合。
# 创建集合
my_set = {1, 2, 3, 4, 5, 5, 5} # 多个5只会保留一个
print(my_set) # 输出 {1, 2, 3, 4, 5}
# 添加元素
my_set.add(6)
print(my_set) # 输出 {1, 2, 3, 4, 5, 6}
# 删除元素
my_set.remove(2)
print(my_set) # 输出 {1, 3, 4, 5, 6}
高级数据结构:列表推导式
1. 列表推导式简介
列表推导式是一种简洁地创建列表的方法,通常用于基于现有列表生成新的列表。
2. 基本语法
列表推导式的基本语法是:new_list = [expression for element in iterable]
# 示例1:生成一个包含1到10的平方的列表
squares = [x**2 for x in range(1, 11)]
print(squares) # 输出 [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
# 示例2:从字符串列表中提取只包含小写字母的子列表
words = ["apple", "Banana", "cherry", "DATE"]
lower_words = [word for word in words if word.islower()]
print(lower_words) # 输出 ['apple', 'cherry']
3. 条件过滤
列表推导式可以包含一个可选的条件过滤部分,过滤出满足条件的元素。
# 示例:生成一个包含1到10之间偶数平方的列表
even_squares = [x**2 for x in range(1, 11) if x % 2 == 0]
print(even_squares) # 输出 [4, 16, 36, 64, 100]
项目实例:列表推导式实际应用
假设有一个数字列表,需要生成一个新的列表,其中包含的是原列表中所有奇数的立方。
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
cubed_odds = [x**3 for x in numbers if x % 2 != 0]
print(cubed_odds) # 输出 [1, 27, 125, 343, 729]
高级数据结构:字典推导式
1. 字典推导式简介
字典推导式是一种简洁地创建字典的方法,通常用于基于现有字典或其他可迭代的对象生成新的字典。
2. 基本语法
字典推导式的语法是:new_dict = {key_expression: value_expression for element in iterable}
# 示例1:从数字列表生成字典,键是数字,值是数字的平方
num_list = [1, 2, 3, 4, 5]
squares_dict = {num: num**2 for num in num_list}
print(squares_dict) # 输出 {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
# 示例2:从字符串列表生成字典,键是字符串长度,值是字符串
words = ["apple", "Banana", "cherry", "DATE"]
length_dict = {word: len(word) for word in words if word.islower()}
print(length_dict) # 输出 {'apple': 5, 'cherry': 6}
3. 条件过滤
字典推导式也可以包含一个可选的条件过滤部分,过滤出满足条件的键值对。
# 示例:从数字列表生成字典,键是数字,值是数字的平方,但只保留偶数的键值对
num_list = [1, 2, 3, 4, 5]
even_squares_dict = {num: num**2 for num in num_list if num % 2 == 0}
print(even_squares_dict) # 输出 {2: 4, 4: 16}
项目实例:字典推导式实际应用
假设有一个字符串列表,需要生成一个新的字典,其中包含的是原列表中所有小写字母字符串的长度作为键,字符串本身作为值。
words = ["apple", "Banana", "cherry", "DATE"]
lower_length_dict = {word: len(word) for word in words if word.islower()}
print(lower_length_dict) # 输出 {'apple': 5, 'cherry': 6}
高级数据结构:集合推导式
1. 集合推导式简介
集合推导式是一种简洁地创建集合的方法,通常用于基于现有集合或其他可迭代的对象生成新的集合。
2. 基本语法
集合推导式的语法是:new_set = {expression for element in iterable}
# 示例1:从数字列表生成集合,元素是数字的平方
num_list = [1, 2, 3, 4, 5]
squares_set = {num**2 for num in num_list}
print(squares_set) # 输出 {1, 4, 9, 16, 25}
# 示例2:从字符串列表生成集合,元素是字符串的长度
words = ["apple", "Banana", "cherry", "DATE"]
length_set = {len(word) for word in words if word.islower()}
print(length_set) # 输出 {5, 6}
3. 条件过滤
集合推导式也可以包含一个可选的条件过滤部分,过滤出满足条件的元素。
# 示例:从数字列表生成集合,元素是数字的平方,但只保留偶数的平方
num_list = [1, 2, 3, 4, 5]
even_squares_set = {num**2 for num in num_list if num % 2 == 0}
print(even_squares_set) # 输出 {4, 16}
项目实例:集合推导式实际应用
假设有一个数字列表,需要生成一个新的集合,其中包含的是原列表中所有偶数的平方。
numbers = [1, 2, 3, 4, 5, 6]
even_squares_set = {x**2 for x in numbers if x % 2 == 0}
print(even_squares_set) # 输出 {4, 16, 36}
高级数据结构:嵌套的数据结构
1. 嵌套列表
嵌套列表是指列表中包含其他列表。
# 创建嵌套列表
nested_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
# 访问嵌套列表中的元素
print(nested_list[0][1]) # 输出 2
# 遍历嵌套列表
for sublist in nested_list:
for element in sublist:
print(element, end=" ")
print() # 输出 1 2 3
# 4 5 6
# 7 8 9
2. 嵌套字典
嵌套字典是指字典的值是另一个字典。
# 创建嵌套字典
nested_dict = {
"city1": {"name": "Shanghai", "population": 24000000},
"city2": {"name": "Beijing", "population": 21000000}
}
# 访问嵌套字典中的元素
print(nested_dict["city1"]["name"]) # 输出 Shanghai
# 遍历嵌套字典
for city, info in nested_dict.items():
print(f"City: {city}, Name: {info['name']}, Population: {info['population']}")
# 输出 City: city1, Name: Shanghai, Population: 24000000
# City: city2, Name: Beijing, Population: 21000000
3. 嵌套集合
嵌套集合是指集合中包含其他集合。
# 创建嵌套集合
nested_set = {frozenset({1, 2, 3}), frozenset({4, 5, 6}), frozenset({7, 8, 9})}
# 访问嵌套集合中的元素
for subset in nested_set:
for element in subset:
print(element, end=" ")
print() # 输出 1 2 3
# 4 5 6
# 7 8 9
总结
本文从Python的基本变量与类型开始,逐步介绍了列表、元组、字典和集合这些常用的数据结构。通过列表推导式、字典推导式和集合推导式,展示了如何简洁地创建和操作这些数据结构。最后,我们还介绍了嵌套的数据结构,包括嵌套列表、字典和集合。希望这些内容能够帮助读者更好地掌握Python编程的基础知识和技巧。
参考资料Python 官方文档: https://docs.python.org/3/tutorial/
慕课网 Python 课程: https://www.imooc.com/course/list/python
# Python 官方文档示例代码
# 创建一个字典
my_dict = {
"name": "Alice",
"age": 25,
"city": "Shanghai"
}
# 访问字典中的元素
print(my_dict["name"]) # 输出 Alice
# 修改字典中的元素
my_dict["age"] = 26
print(my_dict) # 输出 {'name': 'Alice', 'age': 26, 'city': 'Shanghai'}
# 添加新的键值对
my_dict["job"] = "Engineer"
print(my_dict) # 输出 {'name': 'Alice', 'age': 26, 'city': 'Shanghai', 'job': 'Engineer'}
# 删除字典中的键值对
del my_dict["city"]
print(my_dict) # 输出 {'name': 'Alice', 'age': 26, 'job': 'Engineer'}
共同学习,写下你的评论
评论加载中...
作者其他优质文章