1 Python 进阶到上手实战教程

1 Python 进阶到上手实战教程

目录

1. 列表推导式

1.1 什么是列表推导式

  • 列表推导式是 Python 中一种简洁的创建列表的方式。
  • 语法格式:[expression for item in iterable if condition]
  • 通过表达式对可迭代对象中的元素进行操作,生成新的列表。

1.2 基本用法

  • 示例 1:创建一个简单的列表

    1
    2
    squares = [x**2 for x in range(10)]
    print(squares) # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

1.3 带条件的列表推导式

  • 示例 2:筛选特定条件的元素

    1
    2
    even_squares = [x**2 for x in range(10) if x % 2 == 0]
    print(even_squares) # 输出: [0, 4, 16, 36, 64]

1.4 嵌套列表推导式

  • 示例 3:处理二维列表

    1
    2
    3
    matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    flat_list = [num for row in matrix for num in row]
    print(flat_list) # 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9]

1.5 列表推导式的扩展性

  • 列表推导式不仅可以生成简单的数值列表,还可以处理字符串和自定义对象。

  • 示例 4:处理字符串

    1
    2
    3
    words = ['hello', 'world', 'python']
    upper_words = [word.upper() for word in words]
    print(upper_words) # 输出: ['HELLO', 'WORLD', 'PYTHON']

2. 字典推导式

2.1 什么是字典推导式

  • 字典推导式是 Python 中用于创建字典的一种简洁方法。
  • 语法格式:{key_expression: value_expression for item in iterable if condition}
  • 通过给定的键和值表达式生成新的字典。

2.2 基本用法

  • 示例 1:创建一个简单的字典

    1
    2
    square_dict = {x: x**2 for x in range(5)}
    print(square_dict) # 输出: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

2.3 带条件的字典推导式

  • 示例 2:筛选特定条件的键值对

    1
    2
    even_square_dict = {x: x**2 for x in range(10) if x % 2 == 0}
    print(even_square_dict) # 输出: {0: 0, 2: 4, 4: 16, 6: 36, 8: 64}

2.4 嵌套字典推导式

  • 示例 3:处理中嵌套结构

    1
    2
    nested_dict = {x: {y: x * y for y in range(3)} for x in range(3)}
    print(nested_dict) # 输出: {0: {0: 0, 1: 0, 2: 0}, 1: {0: 0, 1: 1, 2: 2}, 2: {0: 0, 1: 2, 2: 4}}

2.5 字典推导式的应用场景

  • 常用于数据的转换、过滤和生成新的字典结构。

  • 示例 4:交换字典的键值对

    1
    2
    3
    original_dict = {'a': 1, 'b': 2, 'c': 3}
    inverted_dict = {v: k for k, v in original_dict.items()}
    print(inverted_dict) # 输出: {1: 'a', 2: 'b', 3: 'c'}

3. 总结

  • 列表推导式和字典推导式是 Python 强大的特性,能够有效简化代码,提高可读性。
  • 掌握这两种推导式可以在数据处理和转换中提升工作的效率。
1 什么是Python?

1 什么是Python?

Python是一种广泛使用的高级编程语言,以其简洁、易读的语法而闻名。它于1991年由开发者Guido van Rossum推出,旨在强调代码的可读性和简洁性。Python是一种解释型面向对象动态类型的编程语言,适合初学者和专业开发者使用。

特点

以下是Python的一些显著特点:

  1. 易读性:Python的语法设计追求简洁,代码结构清晰,这使得新手能够更快地理解和使用它。

    1
    2
    3
    # 一个简单的Python代码示例
    name = "世界"
    print("你好," + name + "!")
  2. 强大的标准库:Python拥有丰富的标准库,涵盖了从文件I/O、网络编程到数据处理等多种功能,可以大大减少开发时间。

  3. 跨平台:Python可以在Windows、Mac OS、Linux等操作系统上运行,代码的可移植性极好。

  4. 开源:Python是一种开源语言,意味着任何人都可以自由修改和分发其源代码。

  5. 社区支持:Python有一个活跃的用户社区,拥有大量的开发者和丰富的文档,帮助你在遇到问题时找到解决方案。

主要应用领域

Python在多个领域都有广泛的应用,包括但不限于:

  • Web开发:使用框架如Django和Flask来构建动态网站。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    from flask import Flask

    app = Flask(__name__)

    @app.route('/')
    def hello():
    return "你好,Python!"

    if __name__ == '__main__':
    app.run()
  • 数据分析和科学计算:使用NumPy、Pandas等库进行数据分析,Matplotlib、Seaborn等库进行数据可视化。

  • 人工智能和机器学习:使用TensorFlow、Keras、Scikit-Learn等库创建智能应用。

  • 自动化脚本:编写脚本来自动化常见的任务,提高工作效率。

学习资源

初学者在学习Python时,可以参考如下资源:

  • 官方文档:访问Python官方文档获取详尽的说明和指南。
  • 在线教程和课程:许多网站如Codecademy、Coursera以及edX提供Python教程。
  • 书籍推荐:书籍如《Python编程:从入门到实践》、《流畅的Python》非常适合初学者。

总结

Python是一种功能强大且易于学习的编程语言,适合各种程度的开发者。无论你是想编写简单的脚本还是开发复杂的应用,Python都能满足你的需求。通过不断的实践,你将能够掌握Python,甚至在其中进行高级的应用开发。

2 Python进阶到上手实战教程

2 Python进阶到上手实战教程

小节集合

1. 集合的定义与基本操作

  • 集合定义:集合是一种无序且不重复的元素集合,可以用来去重和进行交、并、差等操作。

    1
    2
    # 创建集合
    my_set = {1, 2, 3, 4, 5}
  • 基本操作

    • 添加元素:使用 add() 方法。
    • 删除元素:使用 remove()discard() 方法。
    1
    2
    3
    my_set.add(6)        # 添加元素
    my_set.remove(1) # 删除元素
    my_set.discard(10) # 删除元素,如果不存在,不报错

2. 集合的集合操作

  • 交集:返回两个集合的共同部分。

    1
    2
    3
    setA = {1, 2, 3}
    setB = {2, 3, 4}
    intersection = setA & setB # 或使用 setA.intersection(setB)
  • 并集:返回两个集合的所有元素。

    1
    union = setA | setB  # 或使用 setA.union(setB)
  • 差集:返回在一个集合中但不在另一个集合中的元素。

    1
    difference = setA - setB  # 或使用 setA.difference(setB)
  • 对称差集:返回两个集合中不同时存在的元素。

    1
    symmetric_difference = setA ^ setB  # 或使用 setA.symmetric_difference(setB)

3. 集合的推导式

集合推导式是一种快速构造集合的方式。

1
2
# 创建包含平方数的集合
squares = {x**2 for x in range(10)}

高级集合操作

1. 集合的特性

  • 唯一性:集合内的元素是唯一的,无法存储重复值。

    1
    unique_set = {1, 2, 2, 3}  # 结果:{1, 2, 3}
  • 无序性:集合中的元素是无序的。

2. 使用集合消除重复

将列表转换为集合可以快速消除重复。

1
2
my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(set(my_list)) # 结果:[1, 2, 3, 4, 5]

3. 集合的操作性能

集合操作的平均时间复杂度为 (O(1)),相较于列表的 (O(n)) 性能更优。

4. 集合与字典的关系

集合可以被看作没有值的字典。

1
2
3
# 创建一个字典和一个集合
my_dict = {1: 'a', 2: 'b'}
my_set = set(my_dict.keys()) # 结果为 {1, 2}

5. 复杂的集合操作

例如,找出两个集合的交集并过滤特定条件。

1
2
3
4
5
setA = {1, 2, 3, 4, 5}
setB = {3, 4, 5, 6, 7}

# 找出交集并过滤
filtered_intersection = {x for x in setA & setB if x > 3} # 结果为 {4, 5}

6. 集合的状态检查

检查集合中是否存在某个元素。

1
2
3
my_set = {1, 2, 3}
print(2 in my_set) # 输出:True
print(4 in my_set) # 输出:False

7. 集合与函数结合

集合可以用于函数参数,支持集合作为输入参数。

1
2
3
4
def common_elements(set1, set2):
return set1 & set2 # 返回两个集合的交集

result = common_elements({1, 2, 3}, {2, 3, 4}) # 结果为 {2, 3}

8. 集合的冻合与可变性

使用 frozenset 创建不可变集合。

1
2
frozen_set = frozenset([1, 2, 3])
# frozen_set.add(4) # 将引发 AttributeError

通过以上小节和高级操作,你可以深入理解和掌握Python集合的使用。这不仅能帮助你提高在数据处理和分析中的效率,还有助于编写更简洁、更清晰的代码。