编程学习网 > 编程语言 > Python > Python教程-10个超级常用的 Python 技巧!好用到爆!
2024
09-12

Python教程-10个超级常用的 Python 技巧!好用到爆!


在学习Python编程时,掌握一些实用的小技巧可以大大提升你的编码效率和代码质量。无论你是初学者还是有一定基础的学生,了解一些实用的Python技巧都能帮助你更好地应对编程中的各种挑战。今天,我们将探索10个高效的Python技巧,这些技巧能够让你的代码更加简洁。掌握这些技巧后,你会发现Python的世界变得更加有趣和高效。让我们一起深入这些实用的技巧,提升你的编程技能,成为更加出色的Python开发者。

1. 获取列表中n个最大或最小的元素
使用heapq模块,可以帮助我们获取列表中n个最大或最小的元素。
假设你有一个列表 [7, 2, 5, 8, 10, 3],你想找出其中的3个最大元素和2个最小元素。
import heapq

numbers = [7, 2, 5, 8, 10, 3]

# 找出3个最大元素
largest_three = heapq.nlargest(3, numbers)
print("3个最大元素:", largest_three)  # 输出: [10, 8, 7]

# 找出2个最小元素
smallest_two = heapq.nsmallest(2, numbers)
print("2个最小元素:", smallest_two)  # 输出: [2, 3]
2. 获取列表中每个元素及其对应下标
使用enumerate函数,可以帮助我们获取列表中每个元素及其对应下标。当然,不仅仅是列表,对于其他可迭代对象时非常有用,这在需要同时访问元素和其索引的场景中尤其方便。
假设我们有一个列表 fruits,我们想要打印每个水果及其对应的下标。使用 enumerate 可以很简单地实现这一目标。
fruits = ['apple', 'banana', 'cherry', 'date']

# 使用 enumerate 获取下标和元素
for index, fruit in enumerate(fruits):
    print(f"索引: {index}, 水果: {fruit}")

# 结果
索引: 1, 水果: apple
索引: 2, 水果: banana
索引: 3, 水果: cherry
索引: 4, 水果: date
3. 简化代码(列表解析式)
列表解析式(List Comprehension)是一种简洁、高效地创建列表的方式。它允许你用一行代码生成新列表,通常比使用传统的循环更简洁和直观。
生成一个包含 0 到 9 的平方的列表。
# 无条件
squares = [x**2 for x in range(10)]
print(squares)
# 结果
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# 待条件
even_squares = [x**2 for x in range(10) if x % 2 == 0]
print(even_squares)
# 结果
[0, 4, 16, 36, 64]

# 嵌套
matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

flattened = [elem for row in matrix for elem in row]
print(flattened)
# 结果
[1, 2, 3, 4, 5, 6, 7, 8, 9]
4. 合并字典
{**dictionary_one, **dictionary_two} 语法是 Python 3.5 引入的字典解包功能,用于合并字典。这个语法将两个字典合并为一个新字典,如果存在重复的键,后面的字典的值会覆盖前面的字典的值。
# 基本合并
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}

merged = {**dict1, **dict2}
print(merged)
# 结果
{'a': 1, 'b': 3, 'c': 4}

# 合并多个字典
dict1 = {'a': 1}
dict2 = {'b': 2}
dict3 = {'c': 3}

merged = {**dict1, **dict2, **dict3}
print(merged)
# 结果
{'a': 1, 'b': 2, 'c': 3}
5. 三元表达式
三元表达式(也称为条件表达式)是一种简洁的条件语句写法,用于在一行代码中根据条件选择一个值。Python 的三元表达式的基本语法是:
value_if_true if condition else value_if_false
<条件为真的结果> if <条件判断> else <条件为假的结果>
假如我们有这样一个if...else...条件判断语句:
age = 20
if age >= 18:
    status = 'Adult'
else:
    status = 'Minor'
我们可以利用三元表达式,简化我们的代码。
age = 20
status = 'Adult' if age >= 18 else 'Minor'
6. 匿名函数
匿名函数(也称为 lambda 函数)是没有名字的函数,通常用于短小、简单的操作。Python 使用 lambda 关键字来创建匿名函数。匿名函数的语法是:
lambda arguments: expression
它有3个常见的使用场景:
临时性操作:当函数只需被使用一次或几次,且功能简单时,匿名函数可以减少代码量。
作为函数参数:常用于高阶函数(如 map、filter、sorted)中,作为参数传入。
简单的回调函数:在某些需要简单回调函数的场景下,匿名函数比命名函数更为简洁。
这里我们简单介绍一下它的基本用法。
# 匿名函数:计算两个数的和
add = lambda x, y: x + y

result = add(5, 3)
print(result)  # 输出 8
7. 计算元素的累积
reduce 是 Python 的 functools模块中的一个函数,用于对序列的所有元素进行累积操作。它通过反复应用一个二元操作函数,将序列缩减为单个值。通常情况下,reduce`和 lambda 函数组合可以使代码更简洁,但要注意代码的可读性。
假如有一个列表[1, 2, 3, 4, 5],我们想要计算列表的累积和。
from functools import reduce

numbers = [1, 2, 3, 4, 5]
# 使用 lambda 表达式定义二元操作函数:计算两个数的和
result = reduce(lambda x, y: x + y, numbers)

print(result)  # 输出 15
8. 将同一操作应用到多个元素上
map 是 Python 内置函数之一,用于将指定函数应用到可迭代对象的每一个元素上,并返回一个迭代器,该迭代器生成函数处理后的结果。它可以结合 lambda 表达式和多个可迭代对象来实现更复杂的处理逻辑。返回的是一个迭代器,所以通常需要使用 list 或 tuple函数将其转换为可查看的形式。
# 基本用法
# 定义一个函数,将一个数字平方
def square(x):
    return x * x
numbers = [1, 2, 3, 4, 5]
# 使用 map 将 square 函数应用到 numbers 列表的每一个元素上
result = map(square, numbers)
# 将结果转换为列表并输出
print(list(result))  # 输出 [1, 4, 9, 16, 25]


# 使用 lambda 表达式
numbers = [1, 2, 3, 4, 5]
result = map(lambda x: x ** 3, numbers)
# 将结果转换为列表并输出
print(list(result))  # 输出 [1, 8, 27, 64, 125]

# 多个可迭代对象
def add(x, y):
    return x + y
numbers1 = [1, 2, 3, 4]
numbers2 = [5, 6, 7, 8]
# 使用 map 将 add 函数应用到 numbers1 和 numbers2 列表的每一对元素上
result = map(add, numbers1, numbers2)
# 将结果转换为列表并输出
print(list(result))  # 输出 [6, 8, 10, 12]
9. 筛选符合特定条件的元素
filter 函数用于从可迭代对象中过滤出符合特定条件的元素。它接受两个参数:一个函数和一个可迭代对象。函数应用于可迭代对象的每一个元素,只有当函数返回 True时,元素才会被包含在结果中。它返回一个迭代器,需要通过 list或 tuple 转换为具体的列表或元组来查看结果。可以与 lambda表达式结合使用,以简化条件定义。
# 基本用法
def is_even(x):
    return x % 2 == 0
numbers = [1, 2, 3, 4, 5, 6]
# 使用 filter 函数将 is_even 函数应用到 numbers 列表中
result = filter(is_even, numbers)
# 将结果转换为列表并输出
print(list(result))  # 输出 [2, 4, 6]

# 使用 lambda 表达式
numbers = [5, 12, 8, 21, 15, 3]
# 使用 filter 函数和 lambda 表达式
result = filter(lambda x: x > 
以上就是Python教程-10个超级常用的 Python 技巧!好用到爆!的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取